2011-05-06 98 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創建你的複選框。