Я создаю диалоговое окно предупреждения, в котором есть основной список флажков, когда я нажимаю кнопку. Если элементы были проверены ранее, я хочу иметь возможность установить флажки для пользователя. Я сделал это, манипулируя "onPrepareDialog", например, так:
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
Log.v("dialog", "On prepare dialog");
ListView lv = ((AlertDialog) dialog).getListView();
if (lv == null){
return;
}
String[] names = Utility.convertStringToArr(currentTravelers, ", ");
for(int i = 0;i < lv.getChildCount();i++){
for(int j = 0;j< names.length;j++){
String tn = lv.getItemAtPosition(i).toString();
if(tn.equalsIgnoreCase(names[j])){
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lv.setItemChecked(i, true);
}
}
}
}
Это отлично работает, за исключением первого раза, когда я выбираю кнопку. Она просто покажет мне контрольный список, в котором ничего не выбрано. Если я отменю и нажму еще раз, я увижу проверенные правильные имена. Я попытался отследить количество дочерних элементов ListView, и в первый раз оно достигает нуля.
Есть ли что-нибудь подобное, чтобы при первом появлении диалогового окна с предупреждением оно фактически заполняло список, чтобы я мог проверить правильные имена?
Есть что-то, что я не переопределяю или не адаптирую? Я в недоумении.
Спасибо!