2011-04-14 141 views
0

我需要添加一个复选框到这个列表视图,我有一个textview/chrono /复选框的row.xml设置。我必须在我的baseadapter扩展中显示复选框吗?此外,为什么getSystemService()错误在我身上?BaseAdapter扩展问题

package com.walkarchdev.tasktracker; 

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.BaseAdapter; 
import android.widget.Chronometer; 
import android.widget.TextView; 

public class TTAdapterView extends BaseAdapter { 

public View v; 

public TTAdapterView(Context context){ 
    super(); 

} 

@Override 
public View getView(int position, View convertView, ViewGroup parent){ 
    this.v = convertView; 

    if(v==null){ 
     LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     v = vi.inflate(R.layout.row, null); 
    } 
    TextView task = (TextView)v.findViewById(R.id.textView1); 
    Chronometer time = (Chronometer)v.findViewById(R.id.chronometer1); 
    //Checkbox complete = (Checkbox)v.findViewById(R.id.checkBox1); 

    return v; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return 0; 
} 

@Override 
public Object getItem(int arg0) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int arg0) { 
    // TODO Auto-generated method stub 
    return 0; 
} 


} 

回答

1

为什么getSystemService() 错误在我身上?

getSystemService()Context上的方法。除在构造函数中的参数传递的情况下,并用它来调用getSystemService()方法

Do I have to show the checkbox in my baseadapter extending? 

如果您打算使用复选框的状态,那么你必须将其存储在一个变量,以监测选中状态

+0

final TTAdapterView aa = new TTAdapterView(this); // aa = new ArrayAdapter (this,0); myListView.setAdapter(aa); 。 addButton.setOnClickListener(新OnClickListener(){ \t公共无效的onClick(视图v){ \t \t aa.add(myEditText.getText()的toString()); \t \t //taskitems.add(count 。,myEditText.getText()的toString()); \t \t aa.notifyDataSetChanged(); \t \t myEditText.setText( “”); \t \t myEditText.requestFocus(); \t \t \t \t \t} }); – Intelwalk 2011-04-14 18:13:23

+0

我无法像使用arrayadapter一样添加到我的适配器。用baseadapter做这件事的方法是什么? – Intelwalk 2011-04-14 18:13:54

+0

你不能这么简单地添加BaseAdapter。我从你发布的代码片段看到的是,你从getCount方法返回0。相反,您应该返回列表的大小,因为getcount方法由适配器在内部调用,而该适配器又决定何时调用getView方法。有关更多详细信息,请参阅此链接http://developerlife.com/tutorials/?p=327。和这个http://www.androidguys.com/2008/07/14/fancy-listviews-part-one/ – pankajagarwal 2011-04-18 04:49:34

0

没有与复选框状态手动工作在你的适配器时,滚动下来,你将有复选框状态的问题,在你的ListView。

你打电话给getSystemService有什么样的错误?

+0

方法getSystemService(String)未定义类型TTAdapterView – Intelwalk 2011-04-14 05:57:24

+0

是的,你应该通过上下文实例调用它。我在适配器的构造函数中完成并将参数传递给参数 – Maxim 2011-04-14 05:59:23