当调用notifyDataSetChanged时,强制ExpandableListView更新数据
||
我有一个ExpandableListView和一个ExpandableListAdapter。当我在适配器中调用“ 0”时,数据不会刷新,直到我折叠然后展开组。这是有问题的代码。
一,我的活动(相关部分)
public class HomeActivity extends ExpandableListActivity {
适配器的构建和清单
homeList = (ExpandableListView)this.findViewById(android.R.id.list);
homeAdapter = new ExpandableHomeAdapter(this, profile.Statements, getItems(itemCount));
homeList.setAdapter(homeAdapter);
homeList.setIndicatorBounds(0,0);
homeList.setOnChildClickListener(this);
homeList.expandGroup(0);
homeList.expandGroup(1);
在此活动中,我有一个活动已注册,该活动使它知道(存储在应用程序控制器中的)模型数据已更改。这是事件。
private DataChangedListener dataChanged = new DataChangedListener() {
@Override
public void dataChanged(DataChangedEvent event, ChangeModel changes) {
profile = Controller.getProfile();
for (int x = 0; x < changes.NewItems.length; x++) {
homeAdapter.insertItem(changes.NewItems[x], x);
}
for (int x = 0; x < changes.NewStatements.length; x++) {
homeAdapter.insertStatement(changes.NewStatements[x], x);
}
}
};
然后是我的适配器
public class ExpandableHomeAdapter extends BaseExpandableListAdapter {
插入方法
public void insertItem(ItemSummary item, int index) {
items.add(index, item);
this.notifyDataSetChanged();
}
当我使用多个ѭ7时,使用ѭ0的相同方法有效。但是,现在一切正常,数据实际上已更改,但是直到我(手动)折叠然后扩展组后,屏幕才会使用新数据更新。我没有以编程方式尝试折叠/展开,但我想将其保存为万不得已。数据更改时如何更新视图?
没有找到相关结果
已邀请:
1 个回复
辩谷变充
。然后致电:
另外,还有一种方法可以让您从类外部调用
方法。也许可以在调用
方法的同一位置调用它。