google 從3.0開始就引入了 Fragment 概念,用 Fragment 取代多 Activity,假設你還停留在 Activity 時代,那你就面壁去吧!
Fragment 是好用,可是又幾個問題,
1.在 ViewPager 里面,你不知道 Fragment 當前是顯示還是隱藏狀態,就是少了一個 onShow onHide 回調
2.就是本客題,顯示一個 DialogFragment 回調問題,
舉個場景,刪除一個文件。用 DialogFragment 彈出用戶選擇,你怎么知道用戶確定了還是取消了,而且你不知道這個 DialogFragment 何時消失了,由於沒有觸發不論什么UI 事件,你就不知道要刷新列表,
然而,我知道,僅僅要我有問題,上 stackoverflow 這里一定能夠搜到答案
http://stackoverflow.com/questions/13733304/callback-to-a-fragment-from-a-dialogfragment
這問題就是了
原理:
Fragment 有
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
回調,當你在 Fragment 里調用 getParentFragment().onActivityResult() 就能夠收到回調,細致想想。這事實上就一個函數調用,沒經過系統處理,。。
stackoverflow 上講的這個樣例更合理,使用
dialogFrag.setTargetFragment(this, DIALOG_FRAGMENT);
getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, getActivity().getIntent());
組合。更加合理