я показываю диалог флажков (список, полученный из БД), чтобы позволить пользователю выбрать, какие строки удалить. Из-за кеширования диалогов Android мне нужно обновить счетчик и имена флажков. В моем onCreateDialog:
dialog = new AlertDialog.Builder( this )
.setTitle( "Remove Items" )
.setMultiChoiceItems( items, _selections, new OnMultiChoiceClickListener(){public void onClick (DialogInterface dialog, int which, boolean isChecked){}} )
.setPositiveButton("Smazat", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
deleteRow(_selections);
} })
.setNegativeButton("Storno", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
} })
.create();
Как обновить значения (элементы, _selections) в onPrepareDialog? Я попытался сделать представления недействительными, надеясь, что это заставит Android загружать элементы снова (это тоже не работает), но я считаю, что это плохой выбор, а также удаление диалогов и повторное создание.
protected void onPrepareDialog(final int id, final Dialog dialog) {
switch (id) {
case REMOVE_DIALOG_ID:
ListView lv = ((AlertDialog) dialog).getListView();
lv.invalidateViews();
break;
}
Спасибо за любые идеи!