ListView를 사용하여 AlertDialog를 만들고 어댑터에 요소 CheckAll/UncheckAll 요소가 프로그래밍 방식으로 있습니다. 이것은 작동합니다. 그러나 화면을 터치하여 항목을 검사 할 때 checkall을 누른 다음 선택된 요소가 선택 상태인지 확인 표시를 지우십시오.alertdialog listview 선택 취소
DialogInterface.OnMultiChoiceClickListener coloursDialogListener = new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
ListView list = ((AlertDialog) dialog).getListView();
long[] a = list.getCheckItemIds();
if (which == 0) {
if (isChecked) {
for (int i = 0; i < list.getCount(); ++i)
list.setItemChecked(i, true);
} else {
for(int i=0;i<list.getCount();++i)
list.setItemChecked(i, false);
}
a = list.getCheckItemIds();//fucntion return empty array
//but on screen checked element is Check.
return;
}
}
};
업데이트 : 나는 버그가 발견되면 알게됩니다.
되는 setMulti (CharSequence를 [] 항목 부울 [] checkedItems, DialogInterface.OnMultiChoiceClickListener 리스너)
제가
파라미터 checkedItems 설정 함수의 경우에 버그가 발생. 그리고 내가 checkedItems 매개 변수 null 버그를 설정하지 않으면 발생합니다. 의견이 있으십니까?업데이트 : 더 datails이 here
은 내가 사용하는 API를 레벨 7 getCheckItemIds 해요() 나는 8 API 레벨을 변경 API 레벨 8 (GPT)를 사용하지만, getCheckedItemIds는 항상 항목이 확인 된 경우에도 빈 배열을 반환합니다. 주요 오류가 남아 있었다. – silentnuke