2012-10-29 30 views
0

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

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

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

我不得不提到,当我想编辑电子邮件地址时,我使用了相同的对话框活动。

回答

1

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

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

我不得不在这个对话活动中,对吧? – nikmin

+0

在android中没有什么叫做Activity。它可以是对话框(AlertDialog,ProgressDialog)或活动。应该在你的Activity类中覆盖'onBackPressed'。您只需确保在“onBackPressed” – Krishnabhadra

+0

确定处获得对输入电子邮件的“EditText”的引用。这很好。我的意思是“对话活动”是在清单中设置的作为对话框打开的活动:) – nikmin

1

尝试覆盖onBackPressed()方法,不做任何事情。

1

您可以设置对话框,不可撤销的构造函数第二参数之一:

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

也考虑到会发生什么帐户如果用户通过任何手段绕过对话框(任何硬件按钮等)。您可以简单地将其解释为用户想要退出应用程序。