Я создаю AlertDialog с ListView, а адаптер имеет элемент 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;
}
}
};
Update: я найти, когда происходит ошибка. , если в функции
setMultiChoiceItems (CharSequence [] пунктов, булевы [] CheckedItems, DialogInterface.OnMultiChoiceClickListener слушатель)
Я установил CheckedItems параметров эта ошибка возникает. И если я устанавливаю checkItems, то параметр null error не возникает. Есть идеи?
UPDATE: Я открываю вопрос о BugTracker Google, для более Datails выглядеть here
я Уровень использования API 7. getCheckItemIds() requries уровень апи 8. я изменился уровень апи до 8, но getCheckedItemIds всегда возвращает пустой массив, даже если детали проверяются. и основная ошибка осталась – silentnuke