【发布时间】:2012-11-12 07:02:36
【问题描述】:
这个问题可能很无聊,但我无法找到正确的解决方案。
这是我的问题:
我想在自己的片段中显示多个ExpandableLists(比如说5)中的数据(java.util.List 和我的TaskObjects),以便用户能够在不同的列表之间滑动。
目前我有一个MainFragmentActivity,其中包含java.util.List、PageViewer 和一个包含标签AllTaskFragment 和OverDueTaskFragment 的“扩展”FragmentPagerAdapter(如TabsAdapter)。这两个 Fragment 各有一个 ExpandableList 和 ExpandableListAdapter(我写的)。
现在当用户点击任何ExpandableLists 中的孩子时,我需要如何通知其他片段ExpandableListAdapter 进行更新?我尝试调用MainFragmentActivity 并从那里调用所有片段,但随后片段ExpandableListAdapters 为“空”,但为什么呢?
更新:
我想我解决了这个问题,atm 正在使用:
如果任何 ExpandableListAdapter 发生变化,我会调用 updateTabs() in
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();
}
这是一个好方法吗?或者这可能会引发一些问题?
【问题讨论】:
-
请提供代码示例。
标签: android list fragment expandablelistview