【发布时间】:2014-05-22 14:17:38
【问题描述】:
我有一个MainActivity、tabhost 和一个fragment。我startActivityForResult 来自fragment,在完成该活动中的任务后,我执行finish 并将结果控制返回到前一个片段。我已经探索了here 和here 的答案。但它们似乎都不适合我。
这是我的fragment 代码:
images[j].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(getActivity(), MovieDetail.class);
intent.putExtra("movie", movieObj);
startActivityForResult(intent, 1);
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
Log.v("activity result", "called");
if (requestCode == 1) {
if(resultCode == getActivity().RESULT_OK){
if (data.getBooleanExtra("movieDeleted", true)){
TabMovies.refresh();
}
// refresh();
}
if (resultCode == getActivity().RESULT_CANCELED) {
//Write your code if there's no result
}
}
}
完成activity:
Intent returnIntent = new Intent();
returnIntent.putExtra("movieDeleted",true);
setResult(RESULT_OK,returnIntent);
finish();
这是我的MainActivity:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
Log.v("parent", "called");
super.onActivityResult(requestCode, resultCode, data);
}
我还给MainActivity 中的onActivityResult() 打了一个super 电话。但是在activity 结束后没有一个方法被调用..
【问题讨论】:
-
你做了 super.startActivityForResult() 吗?
-
在
mainactivity? -
片段中没有。你现在已经完成了 startActivityForResult(intent, 1);你能做 super.startActivityForResult(intent, 1);再试一次?
-
没有在
fragment中调用super.. -
看到我编辑了我的评论
标签: android android-fragments android-tabhost