有關startActivityForResult在fragment中的使用小技巧
阿新 • • 發佈:2019-02-19
這篇博文適合不太會用startActivityForResult的程式設計師觀看,大神就請繞道了。。。
記得是去年有個需求大概是這樣的(當時我還是個小菜鳥,不能體會startActivityForResult的用法和對getActivity()這個方法的理解,走了很多程式碼彎路)
我說下我當時的做法:就是通過flag標記和構造方法來實現的。當時是各種判斷flag。而且介面跳轉體驗明顯不是那麼順暢。隨著開發經驗的增多。這個需求其實很簡單,沒那麼複雜,各種if判斷flag什麼的。就可以用startActivityForResult來搞定。
說到這裡,先了解一下getActivity()這個玩意(當時我就知道反正在fragment中就用這個,也不知道為什麼)。這個就是得到當前fragment所依附的這個activity例項
所以這裡只需要在A_Fragment中的button點選事件中跳轉寫上
getActivity().startActivityForResult(new Intent(getActivity(), HomeActivity.class),1);
注意這裡是getActivity().startActivityForResult.
最後在MainActivity中重寫OnActivityResult方法就可以了。
至於startactivityforresult回傳引數的這些基本用法相信大家不陌生了。這裡不多解釋。網上一大堆。
這裡其實我更加建議使用EventBus這個東西!!!