android как динамически привязывать флажки с помощью пользовательского listview

#android

#Android

Вопрос:

Я создаю checkboxes динамически и хочу привязать это checkboxes к listview .

Как я могу это сделать?

Здесь я привожу свой код—

 
public class HomeActivity extends 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();//my database function to retrieve values to create checkboxes
            if (cr.moveToFirst()) {
                do {
                    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); 
        }}}
  

Вот что я могу написать здесь, чтобы это динамически созданное checkboxes было привязано к listview

Ответ №1:

Что, если вы используете listview Android по умолчанию с флажком. Используя :

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

где COUNTRIES — это статический конечный массив строк, содержащий элемент для отображения..

Комментарии:

1. Это работает, но я хочу привязывать флажки динамически. это означает, что я создаю флажки динамически во время выполнения. итак, как я могу привязать эти флажки к listview.пожалуйста, дайте мне ответ.

Ответ №2:

Вы можете использовать настраиваемый ListView, строки которого содержат CheckBox. Создайте свой собственный адаптер, расширяющий ArrayAdapter, и переопределенный им метод getView создаст ваши флажки.