กลับไปที่กิจกรรมก่อนหน้าที่มีกล่องโต้ตอบใน 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 : ขอบคุณ... มันใช้งานได้ดี มีคำถามอีกข้อครับ..... ถ้ามีกล่องข้อความมดจะเคลียร์หน้าจอแรกยังไงครับ?   -  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

การยกเลิกโมฆะสาธารณะ ()

เพิ่มแล้วในระดับ 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