0
情况:获取从活动陆续结果
我有三个活动位于像这样
活动A /片段A - >活动B /片段B - >活动C/C片段
我的最终目标是从C检索结果返回到A.我已经使用startactivityforresult()完成了。
问题:
当在活性C,I按任一导航向上或后退按钮,然后重新进入从B.活性Ç然后,我完成与活性和按OK键。我设定了结果并完成。活动B在onActivityResult中检索结果,一切正常(请求代码与0相符,resultcode等于RESULT_OK)。活动B然后设置相同的结果并结束。但是,当ActivityA中调用onActivityResult时,为什么结果代码0和数据为空?
我以为startactivityforresult只会将结果发送回先前的直接活动。
活动A
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.activity_search_fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivityForResult(new Intent(v.getContext(), SearchActivity.class), REQUEST_RESTAURANT);
}
});
活动B
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(), AddActivity.class);
intent.putExtra(EXTRA_YELP_RESTAURANT, mRestaurant);
((Activity)v.getContext()).startActivityForResult(intent, FavoritesActivity.REQUEST_RESTAURANT);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if ((requestCode == FavoritesActivity.REQUEST_RESTAURANT) &&
(resultCode == Activity.RESULT_OK)) {
setResult(resultCode, data);
finish();
}
}
活动Ç
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.add_done_check:
Intent data = new Intent();
data.putExtra(EXTRA_MY_RESTAURANT, mRestaurant);
getActivity().setResult(Activity.RESULT_OK, data);
getActivity().finish();
break;
default:
return false;
}
return true;
}
我不认为这是什么原因。我只是写了一个演示,一切都按预期工作。 –
您的活动A是否正确处理onActivityResult()? –