【发布时间】:2013-09-07 00:22:48
【问题描述】:
在我的应用程序中,如果您单击按钮,我会显示警报对话框。警报对话框由多项选择项和 2 个按钮(即确定和取消)组成。最初我使用数组设置了一些项目(即在代码中choice_checked)。
如果您打开警报对话框,您做了一些更改,然后单击确定按钮,然后对话框关闭并再次打开警报对话框,然后它会显示更改(即警报对话框的此默认属性)。
如果您打开警报对话框,您做了一些更改,然后单击取消按钮,然后对话框关闭并再次打开警报对话框,在这种情况下,我只想显示以前的状态(不显示更改)。我试过了,但我没有得到任何人可以帮助我。
在代码中,choice_checked 和choice_checked_dynamic 是布尔数组。choice_checked_dynamic 是choice_checked 的副本。意味着最初这两个数组是相同的。如果您在列表中进行了一些更改并单击“确定”按钮,则更改的数组将被复制到choice_checked_dynamic。默认情况下,警报对话框仅显示更改,因此可以使用 ok 按钮。但是在取消按钮的情况下,意味着如果您做了一些更改然后单击取消按钮然后我想显示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;
}
【问题讨论】:
标签: android android-alertdialog