2011-05-06 126 views
0

我创建动态复选框&我想将该复选框绑定到列表视图。 我该怎么做?android如何动态绑定与自定义列表视图

在这里,我给我的代码 -

公共类HomeActivity扩展ListActivity { 复选框[] 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)}; 

光标CR = db.getUncompletedTask(); //我的数据库函数来检索值来创建复选框 如果(cr.moveToFirst()){ 做{ 字符串[]海峡=新的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的 }

}

回答

2

如果你使用Android的默认列表视图用复选框。 使用:

setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, COUNTRIES)); 

如果国家是静态的最后字符串数组包含该项目,以显示..

+0

它的工作,但我想动态地绑定复选框。这意味着我在运行时动态创建复选框。所以我怎么能绑定该复选框到listview.plz给我答案。 – 2011-05-07 07:51:58

1

您可以使用自定义的ListView,它的行包含复选框。创建你自己的适配器扩展ArrayAdapter和它的重写方法getView创建你的复选框。