先上代码:
adapter = new SimpleAdapter(this.Context, Arraylist, R.layout.activity_lxxx_show, 
new String[]
{
"_id", "line_id", "sort_order", "station_name", "status", 
"Top_colour", "Bottom_colour", "Left_colour", "Right_colour"
}, 
new int[]
{
R.id._id, R.id.tv_line_id, R.id.tv_sort_order, R.id.tv_station_name, R.id.tv_status, 
R.id.imageView_Top, R.id.imageView_Bottom, R.id.imageView_Left, R.id.imageView_Right
});
lv = (ListView) this.Context.findViewById(R.id.listView_lxxx);
lv.setAdapter(adapter); //将数据显示到ListView上

adapter.notifyDataSetChanged();我需要某时间段重复调用这里的代码,把不同的Arraylist数据绑定到适配器上,这样确实是可以实时更新数据了,但是ListView老是自动置顶。置顶就是我滑动LIstView到底部的时候,ListView重新绑定数据完成之后会显示到ListView最上方。这个问题怎么解决?我应该怎么控制ListView呢?listview

解决方案 »

  1.   

    setSelection();这个属性,你再试试。
      

  2.   

    这个是ListView对象lv的方法是么,那么这个方法里面的那个int类型参数是什么呢?
      

  3.   


    你自己记录最后一个position啊,难道要我传递给你。
      

  4.   

    不用setSelection.第一次后,不再调 lv.setAdapter(adapter);而是这样:  adapter.addData(your data); // or adapter.setData(data);
    然后 lv.notifyDatasetChanged();就好了。 它不会自动滚到顶部了。
      

  5.   

    方法中有int position 参数的。。用来控制listview的位置。。
      

  6.   

    你找你的适配器里啊。。有int position 参数的方法,自己定义就OK了不是
      

  7.   

     adapter均没有addData和setData这两个方法。
      

  8.   

    下面是链接,你自己去看吧。http://www.iteye.com/topic/1112728