จะไปในกิจกรรมก่อนหน้าด้วย setResult ได้อย่างไร

ฉันต้องไปที่กิจกรรมหลักเมื่อมีการคลิกรายการใด ๆ ด้วย setResult

list.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Log.d("gaurav", "list is clicked");

                    moveToEvent();
                }
            });

วิธีการ moveToEvent ของฉันคือ:

public void moveToEvent() {
    Log.d("gaurav", "Move to evnet");
    Intent intent = new Intent();
    this.setResult(5, intent);
    // this.startActivity(intent);
    this.finish();

}

การใช้รหัสนี้ ฉันสามารถกลับมาที่กิจกรรมของผู้ปกครองได้สองหรือสามครั้ง หลังจากนั้นรหัสนี้จะไม่กลับมาที่กิจกรรมของผู้ปกครองและรีเฟรชกิจกรรมของตัวเอง ฉันไม่สามารถหาวิธีแก้ปัญหาได้ กรุณาช่วยฉันในปัญหานี้

ฉันยังลองใช้วิธี onBackPressed แต่ผลลัพธ์ก็เหมือนเดิม

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method
   Intent intent = new Intent(); 
   setResult(5, intent); 
   finish();

  super.onBackPressed();
  }

กรุณาแนะนำฉันว่าฉันทำผิดตรงไหน


person Gaurav Gupta    schedule 31.07.2012    source แหล่งที่มา
comment
หมายความว่าอย่างไรที่ดำเนินไประยะหนึ่งแล้วหลังจากนั้นไม่ไป - หมายความว่ากิจกรรมยังไม่สิ้นสุด ?? คุณแก้จุดบกพร่อง ?? finish() ถูกเรียกตลอดเวลา ??   -  person Daud Arfin    schedule 31.07.2012
comment
ลองลิงก์ ลองนี้ บทช่วยสอน นี้สำหรับการอธิบายเชิงลึก หวังว่ามันจะช่วย nJoy! !   -  person moDev    schedule 31.07.2012
comment
ในการกล่าวถึงโค้ดของฉันเสร็จสิ้น บล็อกโค้ดนี้กำลังทำงานทุกครั้ง สิ่งที่อาจเป็นปัญหาในเรื่องนี้ ฉันควรโพสต์วิธี onActivityForResult ของกิจกรรมหลักหรือไม่   -  person Gaurav Gupta    schedule 31.07.2012
comment
@MiteshAgrawal มันไม่ทำงาน มันทำงานสองหรือสามครั้ง หลังจากนั้นมันก็รีเฟรชกิจกรรมของตัวเอง   -  person Gaurav Gupta    schedule 31.07.2012
comment
หมายความว่าหลังจากผ่านไประยะหนึ่ง กิจกรรมของคุณยังไม่เสร็จสิ้น ? ขวา ??   -  person Daud Arfin    schedule 31.07.2012
comment
ใช่ มันแปลก เมื่อฉันคลิกที่รายการ 10 ครั้ง 5 ครั้งมันจะไปที่กิจกรรมหลัก และ 5 ครั้งจะรีเฟรชกิจกรรมปัจจุบัน   -  person Gaurav Gupta    schedule 31.07.2012
comment
ล้างกิจกรรมสแต็กของคุณโดยใช้ addflag บน Intent อาจช่วยได้ ชอบ mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);   -  person moDev    schedule 31.07.2012
comment
ว้าว ขอบคุณ Mitesh Agarwal มันได้ผลสำหรับฉัน ขอบคุณที่ช่วยชีวิตฉันไว้ :)   -  person Gaurav Gupta    schedule 31.07.2012


คำตอบ (2)


คุณต้องเริ่ม ParentActivity ด้วย

Intent i = new Intent(SignUpActivity.this, UploadImage.class);
startActivityForResult(i, 1);

แล้วเขียนสิ่งนี้ลงใน ParentActivity ของคุณ

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
       //your code
    } else {        
    }       
}

จากนั้นในกิจกรรมที่ 2 ของคุณเขียนสิ่งนี้

Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();
person Nirali    schedule 31.07.2012
comment
gaurav กำลังบอกว่ากิจกรรมยังไม่เสร็จสิ้น Cade ของคุณมีประโยชน์เหมือนกันหรือไม่ ?? - person Daud Arfin; 31.07.2012

ฉันใช้สิ่งนี้เพื่อแก้ปัญหาของฉัน รหัสนี้จะอยู่ในกิจกรรมของผู้ปกครอง

Intent intent = new Intent(AddEvent.this, AddVenue.class); intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TOP); startActivityForResult(intent, 222); ((Activity) AddEvent.this).overridePendingTransition(0, 0);

นี่คือบรรทัดสำคัญในการแก้ปัญหานี้

intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TOP);
person Gaurav Gupta    schedule 31.07.2012