2017-11-05 7 views
-2

선택한 체크 된 항목을 삭제하려고하는데 코드에서이 오류가 발생합니다. 도와주세요.null 객체 참조에서 'boolean android.util.SparseBooleanArray.get (int)'

   submit.setOnClickListener(new View.OnClickListener() { //set action after clicking submit 
       @Override 
       public void onClick(View view) {  //delete checked items and refresh 
        SparseBooleanArray checkedItemPositions = lview.getCheckedItemPositions(); 
        int itemCount = lview.getCount(); 

        for(int i=itemCount-1; i >= 0; i--){ 
         if(checkedItemPositions.get(i)){ 
          adapter.remove(hangerlist.get(i)); 
         } 
        } 
        checkedItemPositions.clear(); 
        adapter.notifyDataSetChanged(); 
        for (int i = 0; i < lview.getChildCount(); i++) {  //remove checkbox after deleting 
         lview.getChildAt(i).findViewById(R.id.checkDelete).setVisibility(View.INVISIBLE); 
        } 
        btn.setVisibility(View.INVISIBLE);  //remove submit and cancel button after deleting 

       } 

      }); 

답변

0

SparseBooleanArray checkedItemPositions lview.getCheckedItemPositions =();

이 줄은 null SparseBooleanArray를 반환합니다. 목록보기에 '체크 된 항목 위치'가 있는지 확인해야합니다. 중단 점을 추가하거나 lView 구성 요소를 초기화하는 코드를 게시하십시오.

+0

네, 맞았습니다. 나는 XML에서 listview를 초기화 할 때 choiceMode를 설정하지 않았다. 감사 – user3312846