返回上一个 activity 在 android 中有一个对话框

Back to previous activity having a dialog box in android

我有一个带有 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();

        }

当 运行 代码时,单击后退按钮会显示对话框并转到第一个屏幕。 现在我想直接在点击后退按钮时显示第一个屏幕而不显示对话框 box.How 可以吗?

如果有文本框,如何清除第一屏?

尝试使用

        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);

public void dismiss ()

Added in API level 1. Dismiss dialog, removing it from the screen. This method can be invoked safely from any thread. Note that you should not override this method to do cleanup when the dialog is dismissed.

        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);

试试这个

 pDialog.dismiss() before startActivity(it)

startActivity(it);
之前尝试 pDialog.dismiss() 如果您想清除第一个 Activity 中任何 TextBox 中的任何数据,请在移动任何 activity 之前将文本设置为该 EditText """ 它将清除 EditText 中的数据.

您必须先关闭 dialogBox,然后才能将其转移到其他 Activity。 在 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);