현재 내 listview에 대한 체크 박스가 있습니다. BaseAdapter에서 체크 박스 ID를 내 자신의 ID로 설정했습니다. 활동에서이 ID에 액세스 할 때. null 포인터 예외가 발생합니까? 비록 내가 아직 그 null 포인터 예외가 디버그?클릭 한 체크 박스 문제
확인란의 ID를 수동으로 설정할 수 있습니까? 체크 박스에는 메소드 setId (int id)가 있습니다.
checkBox.getId()에서 null 포인터 예외에 대한 의견이 있으십니까? 이것은 내 getView()입니다. 여기서 checkBox id를 설정했습니다.
viewHolder.checkBox.setId(myList.get(position).getId());
내가 체크 한 CheckBox를 모두 삭제해야하기 때문에이 작업을 수행했습니다.
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() 메서드에 있습니다. 나의 축배는 그것이 null 값을 얻는 것처럼 보여주지 않습니다. – Robin