Android Activity Dialog在退出后冻结屏幕,直到按下Back

vfh0ocws  于 2024-01-04  发布在  Android
关注(0)|答案(2)|浏览(170)

我正在尝试学习一些关于Android开发的知识,所以我创建了一个Android Activity,用于显示一个带有两个按钮的对话框。就像下面这样简单:

  1. class DialogWindow extends Activity {
  2. @Override
  3. public void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
  6. alertDialog.setTitle("Dialog Window");
  7. alertDialog.setMessage("Do you want to save");
  8. // Setting Positive "Yes" Button
  9. alertDialog.setPositiveButton("Save"),
  10. new DialogInterface.OnClickListener() {
  11. public void onClick(DialogInterface dialog, int which) {
  12. doThis();
  13. dialog.dismiss();
  14. }
  15. });
  16. // Setting Negative "NO" Button
  17. alertDialog.setNegativeButton("Cancel"),
  18. new DialogInterface.OnClickListener() {
  19. public void onClick(DialogInterface dialog, int which) {
  20. doThat();
  21. dialog.dismiss();
  22. }
  23. });
  24. alertDialog.show();
  25. }

字符串
我正在测试它,所以到目前为止,方法doThis()doThat()只显示它们对应的Toast消息。

问题

是无论我按下ButtonDialog都会关闭,并显示previuos Activity屏幕。但我无法再与它交互,直到我按下后退按钮:然后我可以再次交互,而不会出现活动问题。
你能告诉我为什么会发生这种情况吗?当然,在我的计划中,我希望对话框窗口关闭,使应用程序立即响应。为什么上面的代码我必须按下返回?谢谢

uxh89sit

uxh89sit1#

您正在创建一个不可见的Activity(因为您没有调用setContentView),该Activity会生成对话框。一旦对话框被关闭,Activity仍然存在。因此,您需要在恢复上一个Activity之前退出DialogWindow Activity。

nfeuvbwi

nfeuvbwi2#

调用alertDialog.cancel()而不是alertDialog.dismiss()为我解决了这个问题。

相关问题