如何使用setResult进入之前的活动?

时间:2012-07-31 12:19:35

标签: android android-intent

当使用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();
  }

请建议我在哪里做错了。

2 个答案:

答案 0 :(得分:3)

你必须用

开始你的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 {        
    }       
}

然后在你的第二个活动中写下这个

Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();

答案 1 :(得分:0)

我用它来解决我的问题。此代码将在父活动中。

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