我正在onCreate方法的MainActivity类中显示一个带有EditText字段的对话框,取消和确定按钮,如下所示
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("User Login");
alert.setMessage("Enter your email address");
final EditText input = new EditText(this);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String email = input.getText().toString().trim();
if (email == null || email.isEmpty())
{
AlertDialog.Builder alert_email = new AlertDialog.Builder(MainActivity.this);
alert_email.setTitle("Email Not Entered");
alert_email.setMessage("Please enter email.");
alert_email.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Intent start_mainactivity = new Intent(MainActivity.this, MainActivity.class);
startActivity(start_mainactivity);
}
});
alert_email.show();
}
else
{
doSomething();
}
}
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
finish();
System.exit(0);
}
所以从上面的代码我想要做的是显示一个EditText视图字段来收集用户的电子邮件,如果用户输入了电子邮件,代码将继续进行必要的处理,但是如果用户点击OK
而没有输入数据到EditText,只显示另一个对话框,说"Email not Entered"
带有OK按钮,如果用户点击OK
,那么我再次启动MainActivity类来收集工作正常的电子邮件。问题是
当首次启动主要活动并点击Cancel
按钮时,应用程序将退出主屏幕,该屏幕按预期工作
当用户点击OK
按钮而未输入主要活动类的数据时,通过显示电子邮件,取消和确定按钮,现在当我们在此阶段点击Cancel
按钮时,应用程序无法退出到主屏幕,而是再次打开主活动屏幕。
因此,当用户在任何阶段点击Cancel
按钮
根据以下建议,我已将意图启动代码编辑到下面并且工作正常
Intent start_mainactivity = new Intent(MainActivity.this, MainActivity.class);
start_mainactivity.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
start_mainactivity.putExtra("EXIT", true);
startActivity(start_mainactivity);
答案 0 :(得分:1)
你可以使用意图回家屏幕
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(startMain);
答案 1 :(得分:0)
...尝试
finish();
退出您的活动。或者你也可以使用
杀死你的应用程序System.exit(0)
或
android.os.Process.killProcess(android.os.Process.myPid());
答案 2 :(得分:0)
在您的按钮事件中添加以下内容:
getActivity().finish();
System.exit(0);
答案 3 :(得分:0)
您对您的活动重新开放表示肯定吗?也许它只是从未关闭过。打开第二个活动并不意味着当前活动已关闭。您必须使用finish()