向listview中添加新数据,可是每次添加都会把旧的数据覆盖,我看了好多例子还是没看懂

这是我更新listview的代码
Handler handler = new Handler(){
List> listItemx = new ArrayList>();
public void handleMessage(android.os.Message msg) {
if (msg.arg1 == 0X456) {
listItemx = (List>) msg.obj;
SimpleAdapter simpleAdapter = new SimpleAdapter(getActivity(), listItemx, R.layout.weather_simple_item,
new String[]{"city", "lowtemp", "hightemp", "week", "curTemp", "type", "fengli", "aqi"},
new int[]{R.id.city, R.id.lowtemp, R.id.hightemp, R.id.week, R.id.curTemp, R.id.type, R.id.fengli, R.id.aqi});
ListView list = (ListView) getView().findViewById(R.id.chat_weathers);
// 为ListView设置Adapter
list.setAdapter(simpleAdapter);
simpleAdapter.notifyDataSetChanged();

    }
}

};
求大神啊

3个回答

Adapter的初始化,和ListView.setAdapter 只需要执行一次,其他情况只要再listitemx集合里面操作就可以了。listItemx也写成全局的,每次只需要修改listItemx然后 调用Adapter的notifyDataChanged()方法就可以了。

lv_fq
发强 回复a179583637: 采纳一个,本帖就自动结束了。这都是一些常识性的东西,写多了,就知道了。
4 年多之前 回复
a179583637
a179583637 我觉得你的评论好像慢慢的打开了我的心门,可以再往深说说嘛
4 年多之前 回复
a179583637
a179583637 有没有这种例子啊,解救我就靠你们了啊
4 年多之前 回复

handleMessage中,每次执行,都会初始为最初的数组,你不要这么干,每次网数据源中添加数据后,直接调用notifyDataSetChanged

a179583637
a179583637 那我应该怎么写呢
4 年多之前 回复

结本贴,我自己鼓捣明白了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐