просмотр списка предупреждений в диалоговом окне снимите флажок

Я создаю AlertDialog с ListView, а у адаптера есть элементы CheckAll/UncheckAll программно. Это работает. Но когда я проверяю элемент, касаясь экрана, затем нажимаю «Проверить все», а затем «Отменить все», отмеченный элемент остается отмеченным.

    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;
            }
        }
    };

Обновление: я нахожу, когда возникает ошибка. если в функции

setMultiChoiceItems (элементы CharSequence [], логическое значение [] checkedItems, прослушиватель DialogInterface.OnMultiChoiceClickListener)

Я устанавливаю параметр checkedItems, возникает ошибка. И если я устанавливаю параметр checkedItems null, ошибка не возникает. Есть идеи?

ОБНОВЛЕНИЕ: я открываю проблему в системе отслеживания ошибок Google, дополнительные данные смотрите здесь.


person silentnuke    schedule 28.12.2011    source источник


Ответы (1)


getCheckItemIds() Этот метод устарел. Вместо этого используйте getCheckedItemIds().

http://developer.android.com/reference/android/widget/ListView.html

person MikeIsrael    schedule 28.12.2011
comment
я использую API уровня 7. getCheckItemIds() требует уровня API 8. Я изменил уровень API на 8, но getCheckedItemIds всегда возвращает пустой массив, даже если элементы проверены. а главная ошибка осталась - person silentnuke; 29.12.2011