android如何使用自定义列表视图动态绑定复选框

时间:2011-05-06 18:19:05

标签: android

我动态创建复选框&我想将该复选框绑定到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 }

}

2 个答案:

答案 0 :(得分:2)

如果您使用带有复选框的android的默认列表视图,该怎么办? 使用:

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

其中COUNTRIES是包含要显示的项目的静态最终字符串数组。

答案 1 :(得分:1)

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