標籤:
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());
組合,更加合理
android DialogFragment 回調到 Fragment