前两天编写ExpandableListView时,想要更新列表里的数据时,发现使用adpter.notifyDataSetChanged无法对其进行数据的更新。
后来在网上检索了资料,说是要在adapter中加一个hanlder对其进行更新。试了下,发现还是不行,接着查资料,终于纠结了半天之后,看到有个人说试试先把数据clear之后,重新添加,一试。发现有效,终于解决这个问题。
主要代码在下面贴上
写在adapter的构造方法中
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
<span style="white-space:pre"> </span>notifyDataSetChanged();
super.handleMessage(msg);
}
};
public void refresh(){
handler.sendMessage(new Message());
}
最后在activity将adapter中的数据进行clear之后,重新获得
groupTitle.clear();
childMap.clear();