android - 如果单击警告对话框多项选项的取消按钮,如何显示以前的状态

时间:2011-12-28 07:21:19

标签: android android-alertdialog

在我的应用程序中,我使用的是警告对话框,包含带有正负按钮的多项选项。如果您更改选项的状态,假设您单击确定按钮然后下一次对话框打开我想显示更新状态。如果你点击取消按钮然后下次我想显示以前的状态。按钮工作正常但取消按钮功能不起作用我试过但没有得到请任何人可以帮助我。

代码:

protected Dialog onCreateDialog(int id) 
{

    switch (id) { 
    case DIALOG_MULTI_CHOICE:
         System.out.println("In dialog Choice_Checked:"+Arrays.toString(choice_checked));       
        return new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.singlechoicelistitem))
            .setTitle("Bookmarking for")
            .setMultiChoiceItems(choice, choice_checked, new OnMultiChoiceClickListener() {
                public void onClick(DialogInterface dialog, int index, boolean status) {                                      
                    if(status)
                    {
                        choice_checked_dynamic[index] = true;
                    }    
                    else
                    {
                        choice_checked_dynamic[index] = false;
                    }
                }                   
            })
            .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {                       
                    saveBookmarkAction();
                }
            })
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                      ((Builder) dialog).setMultiChoiceItems(choice, choice_checked, null);
                      ((Builder) dialog).create();                                          
                }
            })
           .create();
    }
    return null;
}

3 个答案:

答案 0 :(得分:0)

如果你以前的状态是一个活动,那么onClick的取消按钮,意图是之前的活动,否则只需将onClick功能保持为空白就可以完成同样的活动。

答案 1 :(得分:0)

将dialog.cancel放在否定按钮代码中

.setNegativeButton("No", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
               }
           });

答案 2 :(得分:0)

单击取消按钮,您需要保存默认设置。

创建一个设置默认设置的方法,然后单击取消按钮

调用该方法

示例代码

.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                       saveDefaultSettings(); //this method sets the default settings of tha app                                    
                }
            })