這是我的情況。
我有什麼:一個帶有複選框(稱爲「checkAll」)的活動,位於自定義元素列表的右上角和下方:TextView和複選框。
我想要什麼:在checkAll上clik時,檢查列表中每個項目的所有複選框。
問題:只有當列表中的所有項目都可以在屏幕上看到時,所有的作品才能正常工作。當我有很多元素的列表(例如20),然後當點擊checkAll我的應用程序崩潰。 logcat的說我:NullPointerException異常上線
在Android中有很多元素的列表中的CeckAll按鈕
CheckBox checkBoxInTheItemList = (CheckBox)
mList.getChildAt(i).findViewById(R.id.checkBox);
這是我的函數:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_layout_select_friend);
checkAll =(CheckBox)findViewById(R.id.checkBoxAll);
checkAll.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if((checkAll.isChecked())){
for(int i=1;i<peopleSize;i++){//for each element of my array of Person
mList=(ListView) findViewById(R.id.list); //This is the id of my List
//in the list_layout_select_friend
CheckBox checkBoxInTheItemList = (CheckBox)
mList.getChildAt(i).findViewById(R.id.checkBox); //i try to get
//for each item of the List the relative checkBox.
checkBoxInTheItemList.setChecked(true);//Now i checked the checkBox
}
}
}
});
}
編輯:這是我的適配器蒙山也是方法getView
我該如何避免這個問題? 我怎樣才能檢查一個大列表與隱形元素的所有複選框?
感謝馬特對不可見項目的解釋。現在我在我的辦公室。當我在家時,我會嘗試你的建議,那就是我尋找的東西(我希望:D)。我編輯我的問題白我的適配器的代碼,你可以看看,如果在getView有一些錯誤或不完整?謝謝:) –
好吧馬特,我添加行myCheckBox.setChecked(isCheckedArray [位置])和一些代碼的變化。謝謝!!!! –