目前,我有一個在我的listview複選框,從BaseAdapter我已經設置複選框ID與我自己的ID。 當我從活動訪問此ID。我得到空指針異常?雖然我調試我仍然有空指針異常?點擊複選框問題
是否無法手動設置複選框的ID。複選框確實有一個方法 setId(int id)。
關於checkBox.getId()上的空指針異常的任何想法? 這是我的getView(),我已經設置了checkBox id。
viewHolder.checkBox.setId(myList.get(position).getId());
On活動我做了這個,因爲我必須刪除所有選中的複選框。
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;
}
可以顯示完整的代碼? –
能夠獲得線路號碼。發生錯誤的地方? –
錯誤發生在deleteCheckItem()方法上。我的吐司沒有顯示,因爲它得到空值。 – Robin