当使用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();
}
请建议我在哪里做错了。
答案 0 :(得分:3)
你必须用
开始你的ParentActivityIntent 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);