3

如果我有一個viewpager,其中每個頁面是一個片段。其中一些片段想要啓動其他視圖/活動,所有這些請求都必須傳遞給父活動。因此,對於視圖尋呼機中的每個頁面,所有啓動新活動的請求以及需要傳回碎片的所有結果都要經過一個主要活動。這似乎會變得混亂。有沒有更好的方法來處理這個問題?ViewPager + Fragments開始新的活動

感謝

回答

3

所以在視圖尋呼機每一頁的所有請求,開始新的活動和需要被傳遞迴片段通過一個單一的主要活動多全力以赴的結果。

由於您Fragments的生活和他們的父母Activity生命週期的死,是他們必須使用他們的父母來啓動和接收來自其他Activities結果。

從API 11開始,在最新的支持庫中,您可以從您的Fragments中調用這些方法,它們將從其父Activity中爲您執行。

Intent intent = new Intent(getActivity(), SomeActivityToStart.class); 
    startActivity(intent); 

您也可以爲您的Fragments內的結果啓動Activity

Intent intent = new Intent(getActivity(), SomeActivityToStart.class); 
    startActivityForResult(intent, REQUEST_CODE); 

,然後覆蓋在你的FragmentonActivityResult(int requestCode, int resultCode, Intent data)從父Activity得到的結果。

這看起來好像會變得混亂。有沒有更好的方法來處理這個問題?

既然你不必管父Activity和孩子Fragment自己之間的通信,這不應該是在我看來,太亂了。

結帳http://developer.android.com/reference/android/app/Fragment.html供參考這些方法。

+1

感謝您的回答我不知道這些方法可以從片段內部調用,這使得我的生活和代碼更容易! – Nath5