2016-10-14 6 views
0

: 나는 같은 체크 박스 항목을 선택하면되는 setMulti 내 배열 내가 체크 박스 항목을 선택하고 내 배열에 자신을 설정할 수 있습니다 내 코드에서

protected ArrayList<Integer> selectedStatusId = new ArrayList<>();

는하지만, 내 배열에서 그것을 delet 필요 ... I 내 배열의 ID가 내 mStatuses과 다르므로 그럴 수 없습니다. 원하는 항목을 삭제하려면 어떻게해야합니까?

긍정적 인 버튼을 누른 후 선택한 항목을 모두 가져올 수 있습니까? 이 도움이

 final ArrayList<String> statusesTitles = new ArrayList<>(); 
     for (int i = 0; i < mStatuses.size(); i++) { 
      statusesTitles.add(mStatuses.get(i).StatusTitle); 
     } 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setTitle(R.string.order_dialog_status_title) 
       .setMultiChoiceItems(statusesTitles.toArray(new String[statusesTitles.size()]), null, new DialogInterface.OnMultiChoiceClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i, boolean b) { 
         if (b){ 
          selectedStatusId.add(mStatuses.get(i).StatusId); 
         } else { 
          // TODO How I can delete my position from array? 
         } 
        } 
       }) 
       .setPositiveButton(R.string.order_dialog_status_positive_button, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         refreshContent(); 
        } 
       }) 
       .setNegativeButton(R.string.order_dialog_status_negative_button, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         dialogInterface.cancel(); 
        } 
       }); 
     builder.show(); 

답변

1

는 다음과 같은 방법으로 항목을 제거 할 수 있습니다.

ArrayList<Integer> selectedStatusId = new ArrayList<>(); 
    if (true){ 
     selectedStatusId.add(mStatuses.get(i).StatusId); 
    } else { 
     // delete the first occurrence of the specified element from array 
     selectedStatusId.remove(new Integer(mStatuses.get(i).StatusId)); 
    } 
0
final ArrayList<String> selectedStatusId = new ArrayList<>(); 
     //MAKE IT STRING TYPE 

     final ArrayList<String> statusesTitles = new ArrayList<>(); 
     for (int i = 0; i < mStatuses.size(); i++) { 
      statusesTitles.add(mStatuses.get(i).StatusTitle); 
     } 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setTitle(R.string.order_dialog_status_title) 
       .setMultiChoiceItems(statusesTitles.toArray(new String[statusesTitles.size()]), null, new DialogInterface.OnMultiChoiceClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i, boolean b) { 
         if (b) { 
          selectedStatusId.add(String.valueOf(mStatuses.get(i).StatusId)); 
         } else { 
          // TODO How I can delete my position from array? 
          selectedStatusId.remove(String.valueOf(mStatuses.get(i).StatusId)); 
         } 
         //OR_______________________YOU CAN USE THIS ALSO 
//      if (selectedStatusId.contains(String.valueOf(mStatuses.get(i).StatusId))) { 
//       selectedStatusId.remove(String.valueOf(mStatuses.get(i).StatusId)); 
//      } else { 
//       selectedStatusId.add(String.valueOf(mStatuses.get(i).StatusId)); 
//      } 
        } 
       }) 
       .setPositiveButton(R.string.order_dialog_status_positive_button, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         refreshContent(); 
        } 
       }) 
       .setNegativeButton(R.string.order_dialog_status_negative_button, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         dialogInterface.cancel(); 
        } 
       }); 
     builder.show(); 

희망 ..