My FragmentActivity包含一些頁面的ViewPager。一旦修改了一個頁面,其他人就需要收到通知。 所以我的步驟: 1.從片段發送通知到活動 2.獲取片段列表 3.呼叫通知給每一個。如何通知ViewPager中的其中一個片段發生了變化?
問題出在第2步,得到碎片。 調用adapter.getItem(int i)調用MyFragmentAdapter.getItem(int i),它返回未附加到活動的新Fragment。
任何想法? 在此先感謝。
My FragmentActivity包含一些頁面的ViewPager。一旦修改了一個頁面,其他人就需要收到通知。 所以我的步驟: 1.從片段發送通知到活動 2.獲取片段列表 3.呼叫通知給每一個。如何通知ViewPager中的其中一個片段發生了變化?
問題出在第2步,得到碎片。 調用adapter.getItem(int i)調用MyFragmentAdapter.getItem(int i),它返回未附加到活動的新Fragment。
任何想法? 在此先感謝。
添加下一個方法YourFragmentPagerAdapter解決了這個問題:
public Fragment getActiveFragment(ViewPager container, int position) {
String name = makeFragmentName(container.getId(), position);
return mFragmentManager.findFragmentByTag(name);
}
private static String makeFragmentName(int viewId, int index) {
return "android:switcher:" + viewId + ":" + index;
}
只要內部靜態方法'FragmentPagerAdapter.makeFragmentName(int viewID,int index)'繼續使用相同的字符串保存創建的片段,此解決方案就會工作。有關詳細信息,請參閱'FragmentPagerAdapter.instantiateItem'。也許你應該只使用 – Diederik
erm,正如我所說的那樣:在您使用JakeWharton的ActionBarSherlock時,他已經修改了支持庫,以便此方法是公開的。 – Diederik