Вернуться к предыдущему действию с диалоговым окном в Android

У меня есть приложение для Android с 2 экранами. И я установил диалоговое окно при переходе с первого экрана на второй экран. Мой код:

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

        }

При запуске кода при нажатии кнопки «Назад» отображается диалоговое окно и открывается первый экран. Теперь я хочу показать первый экран непосредственно при нажатии кнопки «Назад», не показывая диалоговое окно. Как это возможно?

И как очистить первый экран, если в нем есть текстовое поле?


comment
Попробуйте pDialog.dismiss() перед startActivity(it);   -  person Rakshit Nawani    schedule 02.03.2016
comment
Закройте свой диалог в onPostExecute, а затем начните свою деятельность. Не запускайте в onPreExecute.   -  person VoidExplorer    schedule 02.03.2016
comment
Вы указали иерархического родителя для второго действия?   -  person Neeraj    schedule 02.03.2016
comment
@Rakshit Nawani: Спасибо... Работает нормально. У меня есть еще один вопрос..... Как очистить первый экран, если есть текстовое поле ant?   -  person Rose    schedule 02.03.2016
comment
@Rose: рад помочь, разместил мой ответ ниже, пожалуйста, примите его и проголосуйте за него, если это помогло.   -  person Rakshit Nawani    schedule 02.03.2016


Ответы (5)


Попробуйте pDialog.dismiss() перед startActivity(it);
Если вы хотите очистить какие-либо данные в любом текстовом поле в первом действии, установите текст для этого EditText "", прежде чем смещать какое-либо действие, это очистит данные в EditText.

person Rakshit Nawani    schedule 02.03.2016

public void отклонить ()

Добавлено в уровень 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);
person IntelliJ Amiya    schedule 02.03.2016

Попробуйте использовать

        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);
person Veeresh Charantimath    schedule 02.03.2016
comment
'Намерение.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK' зачем вам это нужно? - person Neeraj; 02.03.2016

попробуй это

 pDialog.dismiss() before startActivity(it)
person saeed    schedule 02.03.2016

Вы должны отклонить 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);
person Anuj Sharma    schedule 02.03.2016