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()? –