4

这个问题可能非常愚蠢,但我无法找到正确的解决方案。

所以这是我的问题:

我想在自己的 Fragment中以多个(比如说 5 个)显示数据(ajava.util.List和 my ),以便用户能够在不同的列表之间滑动。目前我有一个包含、和一个“扩展” (如TabsAdapter),其中包含选项卡和. 这两个片段各有一个和(由我编写)。TaskObjectsExpandableListsMainFragmentActivityjava.util.ListPageViewerFragmentPagerAdapterAllTaskFragmentOverDueTaskFragmentExpandableListExpandableListAdapter

现在,当用户单击任何一个孩子时,ExpandableLists我需要如何通知其他片段ExpandableListAdapter进行更新?我试图调用MainFragmentActivity并从那里调用所有片段,但是片段ExpandableListAdapters为“空”,但为什么呢?

更新:

我想我解决了这个问题,atm 正在使用:

如果任何 ExpandableListAdapter 发生变化,我会调用 updateTabs()

MainFragmentActivity

    public void updateTabs() {
        for(int i = 0 ; i < tabsAdapter.getCount() ; i++) {
            UpdateableFragment updateableFragment = (UpdateableFragment) getSupportFragmentManager().findFragmentByTag(makeFragmentName(mViewPager.getId(),i));
            updateableFragment.updateFragment();
        }
    }

    private String makeFragmentName(int viewId, int index){
         return "android:switcher:" + viewId + ":" + index;
    }

它只是在每个片段中调用方法

public void updateFragment() {
         adapter.notifyDataSetChanged();
}

这是一个好方法吗?或者这可能会引发一些问题?

4

1 回答 1

0

此类应用程序的关键是跟踪 ArrayAdapters。如果你调用ArrayAdapter.notifyDataSetChanged(),它会告诉它的视图更新。

于 2012-11-24T00:24:08.750 回答