对话活动控制

时间:2012-10-29 10:14:01

标签: android android-activity dialog

我想做什么:当应用程序启动时,它会从数据库中读取电子邮件地址。如果未设置电子邮件地址,则会启动另一个用于添加电子邮件地址的对话框活动。

如果用户未添加电子邮件,则无法关闭该对话框活动,因此单击关闭按钮不会关闭对话框活动。

我遇到的问题是,如果用户单击后退按钮,对话框活动将关闭,主活动将在未设置电子邮件地址的情况下启动。我想要做的是,如果用户在这种情况下单击后退按钮,则关闭应用程序。

我必须提一下,当我想编辑电子邮件地址时,我正在使用相同的对话框活动。

3 个答案:

答案 0 :(得分:1)

尝试覆盖onBackPressed()方法并对其执行任何操作。

答案 1 :(得分:1)

覆盖onBackPressed,检查用户是否插入了任何电子邮件地址。如果不是在不调用super.onBackPressed()的情况下返回。

@Override
public void onBackPressed() {
    if(yourEmailEditText.getText() == null 
       || yourEmailEditText.getText().toString().trim().length() == 0){
          return
    }
    super.onBackPressed();
}

答案 2 :(得分:1)

您可以在其中一个构造函数的第二个参数中将Dialog设置为不可取消:

 Dialog(Context context, boolean cancelable, DialogInterface.OnCancelListener cancelListener)

如果用户以任何方式绕过对话框(通过硬件等任何按钮),也会考虑到帐户会发生什么。您可以根据用户想要退出应用程序来解释这一点。