这个问题可能很菜鸟,但我就是找不到正确的解决方案。
所以这是我的问题:
我想在多个 ExpandableLists
(比如说 5 个)中显示数据(一个 java.util.List
和我的 TaskObjects
)在自己的 fragment 中,以便用户能够在不同的列表之间滑动。
目前我有一个 MainFragmentActivity
,其中包含 java.util.List
、PageViewer
和一个“扩展的”FragmentPagerAdapter
(如 TabsAdapter),其中包含选项卡 AllTaskFragment
和 OverDueTaskFragment
。这两个 fragment 都有自己的 ExpandableList
和 ExpandableListAdapter
(由我编写)。
现在,当用户点击任何 ExpandableLists
中的子项时,我如何通知其他 Fragments ExpandableListAdapter
进行更新?我尝试调用 MainFragmentActivity
并从那里调用所有 Fragments 但随后 fragment ExpandableListAdapters
为“null”,但为什么呢?
更新:
我想我解决了这个问题,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;
}
它只是在每个 fragment 中调用该方法
public void updateFragment() {
adapter.notifyDataSetChanged();
}
这是一个好方法吗?还是这会引发一些问题?
最佳答案
此类应用程序的关键是跟踪 ArrayAdapter。如果您调用 ArrayAdapter.notifyDataSetChanged()
,它将通知其 View 进行更新。
关于android - 相同数据具有不同 expandableList 的多个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13537127/