<nav id="95p2n"><pre id="95p2n"></pre></nav>

  • 小小知識站 > 資料文檔 > 資料百科

    viewpaget中的fragment怎么刷新

    發布:01月11日 來源:zhishizhan.net

    private ListtagLists;1 其次,在適配器java類中重寫instantiateItem方法,把fragment對應的標簽存儲在taglists集合里 public Object instantiateItem(ViewGroup container, int position) { tagLists.add(makeFragmentName(container.getId(), (int) getItemId(position))); return super.instantiateItem(container, position); } 代碼中makeFragmentName()方法的實現 public static String makeFragmentName(int viewId, int index) { return "android:switcher:" + viewId + ":" + index; } 再次,在適配器的java類中寫一個update()方法,用于指定更新哪個fragment,public void update(int item) { Fragment fragment = fm.findFragmentByTag(tagList.get(item)); if (fragment != null) { switch (item) { case 0: break; case 1: ((FragmentB) fragment).query(); break; case 2: ((FragmentC) fragment).query(); break; case 3: break; } } } 從代碼看出,FragmentB和FragmentC中都有一個query()方法,這個方法是后面我們用接口回掉機制更新指定fragment要使用的方法,用于實現我們需要更新的內容。接下來就是我們的重要環節了:通過接口回調機制來實現指定fragment的數據更新。 第一步,定義一個接口類,并在viewpager所在的java類中實現 接口類:public interface FragmentListener { public void onFragmentClickListener(int item); }123 viewpager所在的java類中實現:public void onFragmentClickListener(int item) { //adapter為我們自定義的適配器對象 adapter.update(item); adapter.update(item); } 第二步,在觸發要更新fragement數據事件的fragment中重寫onAttach()方法。比如我這里是點擊fragmentB中一個 Button,實現fragmentB中button狀態的改變和fragmentC中的數據進行更新,那么就重寫fragmentB的 onAttach()方法。private static FragmentListener listener; public void onAttach(Activity activity) { listener = (FragmentListener) activity; super.onAttach(activity); } 這里定義為static是因為我的button點擊事件是在fragmentB中listview的適配器java類中實現的,且這個適配器java類是獨立封裝出來的。若你的觸發事件在fragment的java類中實現的,就不需要定義為static。 第三步,在我們需要對數據進行更新的時候,就調用我們自定義的接口,if (FragmentB.listener != null) {//FragmentB自身刷新 FragmentB.listener.onFragmentClickListener

    (1); //FragmentC刷新 FragmentB.listener.onFragmentClickListener

    (2);

    本文地址:http://www.beanologies.com/show/44_148698.html

    您可能也感興趣:

    (C) zhishizhan.net 刪帖專用:hyduan888@outlook.com 湘ICP備19008447

    本站所收錄作品等信息部分來源互聯網,目的只是為了系統歸納學習和傳遞知識。

    所有作品版權歸原創作者所有,與本站立場無關,根據《信息網絡傳播權保護條例》,如果有作品侵犯了您的權利,請盡快通知我們,我們會及時刪除!

    2019中文字幕视频