【问题标题】:Back to previous activity having a dialog box in android返回上一个在 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 :谢谢......它工作正常。我还有一个问题.....如果有蚂蚁文本框,如何清除第一个屏幕?

标签: android android-intent android-activity android-actionbar android-navigation


【解决方案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);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-01-16
          • 2011-05-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多