返回上一个在 android 中有一个对话框的活动
Posted
技术标签:
【中文标题】返回上一个在 android 中有一个对话框的活动【英文标题】:Back to previous activity having a dialog box in android 【发布时间】:2016-06-14 20:18:36 【问题描述】:我有一个带有 2 个屏幕的 android 应用程序。我在从第一个屏幕转到第二个屏幕时设置了一个对话框。我的代码是:
@Override
protected void onPreExecute()
super.onPreExecute();
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setTitle("Please wait");
pDialog.setMessage("Authenticating User");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.setCanceledOnTouchOutside(false);
pDialog.show();
Intent it = new Intent(MainActivity.this, SecondActivity.class);
it.putExtra("invoiceid", invc);
it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(it);
//finish();
运行代码时,单击后退按钮会显示对话框并转到第一个屏幕。 现在我想直接在点击后退按钮时显示第一个屏幕而不显示对话框。怎么可能?
如果有文本框,如何清除第一个屏幕?
【问题讨论】:
在 startActivity(it) 之前尝试 pDialog.dismiss(); 关闭您在 onPostExecute 中的对话,然后开始您的活动。不要从 onPreExecute 开始。 您是否为第二个活动指定了分层父级? @Rakshit Nawani :谢谢......它工作正常。我还有一个问题.....如果有蚂蚁文本框,如何清除第一个屏幕? 【参考方案1】:在startActivity(it);
之前尝试pDialog.dismiss()
如果要在第一个 Activity 中清除任何 TextBox 中的任何数据,则在移动任何 Activity 之前将文本设置为该 EditText "" ,它将清除 EditText 处的数据。
【讨论】:
【参考方案2】:public void dismiss ()
在 API 级别 1 中添加。关闭对话框,将其从屏幕上移除。 可以从任何线程安全地调用此方法。请注意,您 当对话框打开时,不应覆盖此方法进行清理 被解雇了。
pDialog.dismiss();
Intent it = new Intent(MainActivity.this, SecondActivity.class);
it.putExtra("invoiceid", invc);
it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(it);
【讨论】:
【参考方案3】:尝试使用
Intent it = new Intent(MainActivity.this, SecondActivity.class);
it.putExtra("invoiceid", invc);
it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
pDialog.dismiss();
startActivity(it);
【讨论】:
'Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK' 你为什么需要它?【参考方案4】:试试这个
pDialog.dismiss() before startActivity(it)
【讨论】:
【参考方案5】:您必须先关闭dialogBox
,然后才能将其转移到其他活动。
在 onPostExecute 中添加您的意图
pDialog.dismiss();
然后调用你的意图
Intent it = new Intent(MainActivity.this, SecondActivity.class);
it.putExtra("invoiceid", invc);
it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(it);
【讨论】:
以上是关于返回上一个在 android 中有一个对话框的活动的主要内容,如果未能解决你的问题,请参考以下文章