В настоящее время у меня есть флажок в моем списке просмотра, из BaseAdapter я установил идентификатор флажка с моим собственным идентификатором.
Когда я получаю доступ к этому идентификатору из Activity. Я получаю исключение нулевого указателя? Хотя я отлаживаю, у меня все еще есть исключение нулевого указателя?
Разве невозможно установить id флажка вручную. Флажок имеет метод
setId (int id).
Есть мысли об исключении нулевого указателя в checkBox.getId ()?
это мой getView (), где я установил идентификатор checkBox.
viewHolder.checkBox.setId(myList.get(position).getId());
На активности я сделал так, потому что мне нужно удалить все отмеченные флажки.
private void deleteCheckItems() {
SparseBooleanArray booleanArray = listView.getCheckedItemPositions();
for (int i = 0; i < listView.getCount(); i++) {
if (booleanArray.get(i))
Toast.makeText(getBaseContext(), " the selected index is " + i, Toast.LENGTH_SHORT).show();
}
}
Я получаю исключение нулевого указателя из этого метода
Отредактировано: мой исходный код выглядит так:
public View getView(int position, View view, ViewGroup parent){
ViewHolder viewHolder;
if(view==null){
viewHolder = new ViewHolder();
view = layoutInfalter.inflate(R.layout.item_row,null);
viewHolder.checkBox = (CheckBox)view.findViewById(R.id.CheckBoxId);
if(VIEW_MODE==-1){
viewHolder.checkBox.setVisibility(View.INVISIBLE);
}else{
myAdapter.setViewMode(1);
viewHolder.checkBox.setVisibility(View.VISIBLE);
viewHolder.checkBox.setId(myList.get(position).getId());
}
viewHolder.text1= (TextView)view.findViewById(R.id.text1);
viewHolder.text2 =TextView)view.findViewById(R.id.text2);
view.setTag(viewHolder);
}else{
viewHolder = (ViewHolder)view.getTag();
}
viewHolder.text1.setText(myList.get(position).getText1());
viewHolder.text2.setText(myList.get(position).getText2());
//viewHolder.checkBox.setId(myList.get(position).getId());
return view;
}