public void updateAdapter()
{
setListAdapter(new SimpleAdapter(this, getData(),
R.layout.paperlist, new String[] { "paper_name", "paper_id" },
new int[] { R.id.paper_name,R.id.paper_id}));
}public List<HashMap<String , String>> getData()
{
System.out.println("list的长度"+list.size());
for (int i = 0; i < 2;i++)
{
HashMap<String, String> map1 = new HashMap<String, String>();
map1.clear();
map1.put("paper_name", MyContentHandler.hisname[i]);
map1.put("paper_id", MyContentHandler.id[i]);
list.add(map1);
}
System.out.println("循环结束后list的长度"+list.size());
return list;
}
我写了第一个函数 updateAdapter(),里面是显示一个ListView,ListView从getData()这个函数获取数据,
但是我发现当我多次调用updateAdapter()时,发现ListView并不是只显示2个子项,而是不断的在后面增加,成
2,4,6,8。。,递增,请问怎样才能做的不是从末尾增加而是清空后在从新写入呢?
{
setListAdapter(new SimpleAdapter(this, getData(),
R.layout.paperlist, new String[] { "paper_name", "paper_id" },
new int[] { R.id.paper_name,R.id.paper_id}));
}public List<HashMap<String , String>> getData()
{
System.out.println("list的长度"+list.size());
for (int i = 0; i < 2;i++)
{
HashMap<String, String> map1 = new HashMap<String, String>();
map1.clear();
map1.put("paper_name", MyContentHandler.hisname[i]);
map1.put("paper_id", MyContentHandler.id[i]);
list.add(map1);
}
System.out.println("循环结束后list的长度"+list.size());
return list;
}
我写了第一个函数 updateAdapter(),里面是显示一个ListView,ListView从getData()这个函数获取数据,
但是我发现当我多次调用updateAdapter()时,发现ListView并不是只显示2个子项,而是不断的在后面增加,成
2,4,6,8。。,递增,请问怎样才能做的不是从末尾增加而是清空后在从新写入呢?
解决方案 »
- 使用PopupWindow出现的错误
- 请教android optionmenu自定义弹出的实现
- Launcher修改以后编译错误,马上改回来还是编译错误
- Android Usb Host 问题求教育(学费100分)
- 连接FTP时空指针。。。
- 请教个问题,安卓4.0后台service如果长久没有运行过,会自动退出
- 自定义的分享功能,点击分享按钮后,要等一段时间才能将对话框显示出来,如何解决?
- android ndk 调试
- Bitmap怎么才能释放掉 ,listview加载完滑动几次后老是内存溢出
- 求助,关于应用场景的问题
- 灭屏状态下,来短信点亮屏幕后自动灭屏的处理流程是?
- 本地开了两个eclipse,一个启动webservice,一个android模拟器,访问出错
然后怎么清空里面的数据呢?
我是这么定义的
static ArrayList<HashMap<String, String>> list=new ArrayList<HashMap<String, String>>();
他们每次输出的情况是
list的长度0;
循环结束后list长度2;list的长度0;
循环结束后list长度6;
直接就从2跳到6了。
而且应为我参照的ListView代码中,并没有显示的定义ListView对象,他是直接在布局文件中声明后就能用了。
list的长度0;
循环结束后list长度2;list的长度2;
循环结束后list长度6;
所以我觉得是list.add(map1)这里的问题,add的位置不对。
在调用listview的notify...Change() 刷新下