我动态创建复选框&我想将该复选框绑定到listview。 我怎么能这样做?
这里我给出了我的代码 -
public class HomeActivity扩展ListActivity { CheckBox [] chk; ListView lv1; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); 的setContentView(R.layout.main); LV1 =(ListView中)findViewById(R.id.listTasks); tv1 =(TextView)findViewById(R.id.tvMsg);
db = new DBAdapter(HomeActivity.this);
db.open();//int[] id=new int[]{Integer.parseInt(DBAdapter.ID)};
Cursor cr = db.getUncompletedTask(); //我的数据库函数检索值以创建复选框 if(cr.moveToFirst()){ 做{ String [] str = new String [2]; STR [0] = cr.getString(0); STR [1] = cr.getString(1); al.add(STR); } while(cr.moveToNext()); } startManagingCursor(CR); String [] tasks = new String [] {DBAdapter.KEY_TODO};
int[] idchk=new int[al.size()];//here i am creating checkbox dynamicaly
if (al.size() != 0) {
chk = new CheckBox[al.size()];
System.out.println(al.size());
for (int i = 0; i < al.size(); i++) {
String[] s = (String[]) al.get(i);
System.out.println("ID: "+s[0]);
Task_Id = Integer.parseInt(s[0]);
Task_Nm = s[1];
chk[i] = new CheckBox(HomeActivity.this);
System.out.println(i +"task id"+Task_Id +"parseint"+Integer.parseInt(s[0]+chk[i].getText().toString()));
chk[i].setId(Task_Id);
idchk[i]=Task_Id;
chk[i].setText(Task_Nm);
//lv1.addView(chk[i]);
//setContentView(lv1);
}
这里我可以写什么,以便这个动态创建的复选框将绑定到listview }
}
答案 0 :(得分:2)
如果您使用带有复选框的android的默认列表视图,该怎么办? 使用:
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, COUNTRIES));
其中COUNTRIES是包含要显示的项目的静态最终字符串数组。
答案 1 :(得分:1)
您可以使用其行包含CheckBox的自定义ListView。创建自己的扩展ArrayAdapter的适配器,它的重写方法getView创建你的复选框。