В моем приложении отображается диалоговое окно с предупреждением, если вы нажмете кнопку. Диалоговое окно предупреждения состоит из элементов с несколькими вариантами выбора и 2 кнопок (т. Е. Ok и Отмена). Сначала я установил некоторые элементы с помощью массива (т. Е. В коде choice_checked).
Если вы откроете диалоговое окно оповещения, вы внесли некоторые изменения и нажмете кнопку «ОК», затем диалоговое окно закроется, и снова откроется диалоговое окно оповещения, в котором отобразятся изменения (т. Е. Это свойство по умолчанию диалогового окна оповещения).
Если вы откроете диалоговое окно с предупреждением, вы внесли некоторые изменения и нажмете кнопку «Отмена», затем откроете диалоговое окно и снова откроете диалоговое окно с предупреждением. В этом случае я хочу показать только предыдущий статус (не показывать изменения ). Я пытался, но я не получаю, пожалуйста, может ли тело помочь мне.
В коде choice_checked и choice_checked_dynamic являются логическими значениями arrays.choice_checked_dynamic является дубликатом choice_checked. Значит изначально эти два массива одинаковы. Если вы внесли некоторые изменения в список и нажали кнопку «ОК», то измененный массив будет скопирован в choice_checked_dynamic. По умолчанию диалоговое окно оповещения отображает только изменения, так что это нормально для кнопки ОК. Но в случае кнопки отмены, означает, что если вы сделали некоторые изменения, затем нажмите на кнопку отмены, тогда я хочу отобразить статус choice_checked_dynamic (означает, что я отображал предыдущий статус).
Я пытался, но я не получаю пожалуйста Кто-нибудь может мне помочь.
Код:
private OnClickListener bookmark_btnListener = new OnClickListener()
{
public void onClick(View v)
{
try
{
showDialog(DIALOG_MULTI_CHOICE);
}
catch(Exception ex2)
{
System.out.println("back btn error:"+ex2.toString());
}
}
};
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_MULTI_CHOICE:
bookmark_dialog = new AlertDialog.Builder(this);
bookmark_dialog.setTitle("Bookmarking for");
bookmark_dialog.setMultiChoiceItems(choice, choice_checked, new OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int index, boolean status)
{
}
});
bookmark_dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton)
{
for(int i=0;i<choice_checked.length;i++)
{
choice_checked_dynamic[i] = choice_checked[i];
}
dialog.dismiss();
}
});
bookmark_dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton)
{
for(int i=0;i<choice_checked_dynamic.length;i++)
{
choice_checked[i] = choice_checked_dynamic[i];
}
dialog.dismiss();
}
});
return bookmark_dialog.create();
}
return null;
}