当前位置: 首页 > 知识库问答 >
问题:

旋转时重新显示AlertDialog

文彭祖
2023-03-14

我知道这已经被问了很多次了,但没有任何答案可以帮助我。

我有一个对话框,它将在某个时刻弹出(当我调用方法“showServerDialog”时)。对话框显示出来,一切正常,直到我使用“negativeButton”关闭对话框,然后旋转屏幕。然后,对话框再次出现,尽管我取消了它。

我读了很多次,如果我使用show Dialog(int id)方法显示对话框并覆盖onCreateDialog(int id)方法,android会自动处理所有内容。这正是我正在做的:

@SuppressWarnings("deprecation")
public void showServerDialog(int position){
    showDialog(REMOVE_SERVER_DIALOG_ID);
}

@SuppressWarnings("deprecation")
@Override
protected Dialog onCreateDialog(int id) {

    switch (id) {
    case REMOVE_SERVER_DIALOG_ID:

        System.out.println("---------------------------------DIALOG");

        // Create AlterDialog
        Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("This will end the activity");
        builder.setCancelable(true);
        builder.setPositiveButton("I agree", new OkOnClickListener());
        builder.setNegativeButton("No, no", new CancelOnClickListener());

        AlertDialog dialog = builder.create();
        dialog.show();
        return dialog;
    }
    return super.onCreateDialog(id);
}

private final class CancelOnClickListener implements DialogInterface.OnClickListener{

    public void onClick(DialogInterface dialog, int which) {
        // Do nothing and just close dialog
    }
}

但是,当我通常使用对话框中的按钮关闭对话框并旋转屏幕时,它就会重新出现。

我完全被困住了。请帮忙。

共有2个答案

潘青青
2023-03-14

有同样的问题,用我的清单中的以下行修复了这个问题。xml

        <activity 
        ...
        android:configChanges="orientation|screenSize|keyboardHidden"
        />

你可以试试这个:)

段干开宇
2023-03-14

所以,我终于找到了答案:

我必须调用OnClickListeners:MyActivity,而不是在OnClickListeners中什么都不做。这removeDialog(REMOVE\u SERVER\u DIALOG\u ID);

不要解雇!这很有效!

 类似资料:
  • null 请注意,我试图展示一个本地旋转器。谢了!

  • 问题内容: 旋转屏幕时,WebView会重新加载整个页面。我无法使用此功能,因为我的某些内容包含动态/随机材料。当前,屏幕旋转时会从loadUrl()方法重新加载原始URL。 知道我的代码有什么问题吗? MainActivity.java AndroidManifest.xml 问题答案: 我认为主要问题是您调用了web.loadUrl(webURL); 当saveInstanceState!=

  • 最后,这是我想从中提取的字符串数组文件(我是把我的字符串数组放在它自己的文件中的values文件夹中,还是放在字符串文件中,我都看过了,不知道是哪个,谢谢) 因此,我要重述一下我的问题,我需要使用还是,我如何设置我的ArrayAdapter,以及我需要把我的string-array放在哪里? 先谢谢您!

  • 我用自定义适配器创建了一个旋转器,其中我有一个图像视图和一个文本视图,当我从旋转器中选择项目时,我用选定的项目显示图像,这是完美的工作。 问题: 但问题是当我选择任何项目时,它会在下拉框中显示选定项目的图像。并在旋转器中显示相同的(图像和文本)…

  • 我最近开始编写android程序,我想看看有哪些语言的文本到语音可用在设备上,并显示在一个旋转器,但我遇到了一个非常奇怪的问题。 下面是代码的相关部分: 在这个TTS初始化之后,我尝试并打印sum,它显示为0。我尝试通过执行类似String=country.get(1)的操作来访问localeList和country中的元素;它会在编译器中给出一个错误,说我试图访问的索引不存在,列表中有0个元素。

  • 问题内容: 我想找出悬停时如何制作 旋转或旋转的图像 。我想知道如何在以下代码上使用 CSS 模仿该功能: 问题答案: 您可以将CSS3过渡与一起使用,以 在悬停时旋转图像 。 旋转图像: