当调用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的相同方法有效。但是,现在一切正常,数据实际上已更改,但是直到我(手动)折叠然后扩展组后,屏幕才会使用新数据更新。我没有以编程方式尝试折叠/展开,但我想将其保存为万不得已。数据更改时如何更新视图?     
已邀请:
        我认为这是由于您膨胀you8的方式而发生的。尝试以下操作:代替执行ѭ9来获取ELV,而是调用包含ѭ8的布局的
setContentView
。然后致电:
 ExpandableListView homeList = getExpandableListView();
另外,还有一种方法可以让您从类外部调用
notifyDataSetChanged()
方法。也许可以在调用
InsertItem
方法的同一位置调用它。     

要回复问题请先登录注册