我现在做一个ListView,初始显示30条数据,当我滑动的时候到在后面追加30条数据,用的是这个适配器SimpleAdapter ,当我调用notifyDataSetChanged这个方法的时候,没有追加上去,把之前的全部全部清空了,把新的30条数据放上去了public void headInfo() {
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
if (readTools.existSD()) {
String[] headInfo = readTools.readRows(Environment
.getExternalStorageDirectory()
+ "/Head.txt", startRow, endRow);
// String[] headInfo = readTools.readRows(Environment
// .getExternalStorageDirectory()
// + "/Head.txt");
for (int i = 0; i < headInfo.length; i++) {
HashMap<String, String> map = new HashMap<String, String>();
int j = headInfo[i].indexOf("@@");
headInfo[i] = headInfo[i].substring(0, j);
map.put("ItemTitle", headInfo[i]);
mylist.add(map);
}
}
startRow += 30;
endRow += 30;
// 生成适配器,数组===》ListItem
SimpleAdapter mSchedule = new SimpleAdapter(this, mylist,
R.layout.list_view, new String[] { "ItemTitle" },
new int[] { R.id.ItemTitle });
if (blFir) {
mSchedule.notifyDataSetChanged();
headList.setAdapter(mSchedule);
} else {
headList.setAdapter(mSchedule);
blFir = true;
}
}
指教一下,应该怎么修改 ,初学Android,没有带,好多东西做不来……

解决方案 »

  1.   

    你的描述没看太明白,
    从代码看,headInfo方法每次都新创建mylist,然后重新创建一个SimpleAdapter ,这样每次调用headInfo方法都会只有30条数据了吧。
    将mylist换成全局变量看看。
      

  2.   

    把mylist变成全局了,更新效果就没有了,之有最初的30条数据了 ……
      

  3.   

    没人会ListView吗 ??没道理啊 会的人,出来指点下啦
      

  4.   

    这里还有一个问题,就是我在我的ListView中,设置了第一个按键的底色,为什么隔16个后,也有一个变成一样的底色了,很是纠结…… 我是声明的一个全局变量去接收我所点击的按键,然后去改变这个按键的底色,再次点击别的按键的时候就将全局的设为原来的颜色,点击的变,,,这中间隔了16个,就重复为什么,有高手解释下不
      

  5.   

    应该是定义个全局的List吧,然后把你后来查询出来的新纪录定义成局部的,然后把局部的拷贝到全局中去,最后,通知Adapter作更新就OK了吧 ;呵呵