2010-12-14 69 views
3

蔭使用下面讓複選框從OnItemClickListener代碼片段如何從ListView android中獲取複選框?

onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     Log.w("TAG","onItemClick clicked position :"+position); 

     CheckBox cbx = (CheckBox)view.findViewById(R.id.c_checkbox); 
     if(cbx.isChecked()){ 
      Toast.makeText(getApplicationContext(), 
        "Checked position " + shoppingList.get(position).getItem(), 
        Toast.LENGTH_SHORT).show(); 
     } 

我需要讓所有的位置,以檢查其列表項是checked.For是 我下面用下面的代碼片斷

int firstPosition = list.getFirstVisiblePosition(); 
      for(int i=firstPosition;i<=list.getCount();i++){ 
      View v=list.getChildAt(i); 
      cbx = (CheckBox)v.findViewById(R.id.c_checkbox); 
      if(cbx.isChecked()){ 
      } 
     } 

cbx給我空指針exception.i使用ViewHolder爲自定義adapter.Please給我的解決方案。爲什麼同樣的事情在OnItemClickListener工作?

問候, Rajendar

回答

5

它認爲它可能是

for(int i=firstPosition;i< **=** list.getCount();i++) 

但也只是胡亂猜測。

爲什麼不使用可檢查的listview然後使用this

+0

我想在左邊的複選框 – ADIT 2010-12-14 10:45:34

+0

我在ViewHolder中犯了一個錯誤,並且在錯誤的情況下給出了「i <=」。現在它工作正常。 – ADIT 2010-12-14 10:47:07

+0

現在很高興:) – mad 2010-12-14 10:51:04