Fragment的startActivityForResult詳細解決方案

因爲要用到Fragment中startActivityForResult,因此一開始就直接用activity.startActivityForResult(intent, 0);發現這樣用首先會跳轉到FragmentActivity中的onActivityResult。spa


在這個的時候,確實能夠處理好比FragmentActivity中有3個Fragment,咱們能夠選擇他跳轉到第1個或第二、3個。調試


可是Fragment中的onActivityResult仍舊沒有響應,在網上查找 例子,發現能夠在FragmentActivity中的onActivityResult中調用 mSectionsPagerAdapter.getItem(0).onActivityResult(requestCode, resultCode, data);來實現Fragment中的onActivityResult中的響應。get


通過驗證,這個方法確實有效,可是隨之各類異常。經調試,發現這個時候的 Fragment中的各類數據都是空的,就像從新跳轉到這個Fragment同樣,而且沒有任何初始化的狀態,這樣顯然不符合咱們的需求,而後在調試,發 現數據都在Fragment中的getArguments()中。it


這個時候就犯難了,難道要從新初始化一次?這樣顯然不符合邏輯。隨之去網上查資料,發現Fragment中的startActivityForResult(intent, Activity.RESULT_FIRST_USER);方法,注意的就是這個是Fragment的方法,不是Activiy的,因此別寫成activity.startActivityForResult(intent, Activity.RESULT_FIRST_USER);最關鍵是的RESULT_FIRST_USER字面意思就知道第一個用戶調用,就給第一個用戶,這樣就達到咱們的需求了。io

相關文章
相關標籤/搜索