android – 在列表视图中每次刷新时保持滚动位置

前端之家收集整理的这篇文章主要介绍了android – 在列表视图中每次刷新时保持滚动位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的应用程序中设置了一个计时器,我可以从Web服务获取一些信息,并导致列表视图显示.现在我的问题是,每次定时器运行时,回滚到开始…

在列表视图中每次刷新时如何保持滚动位置?

我的一部分代码

  1. runOnUiThread(new Runnable() {
  2. public void run() {
  3. /**
  4. * Updating parsed JSON data into ListView
  5. * */
  6. ListAdapter adapter = new SimpleAdapter(DashboardActivity.this,all_chat,R.layout.list_item,new String[] { TAG_FULLNAME,TAG_DATE,TAG_MESSAGE },new int[] { R.id.fullname,R.id.date,R.id.message }
  7. );
  8. // updating listview
  9. setListAdapter(adapter);
  10. }
  11. });

TNX.

解决方法

不要调用setAdapter().做这样的事情:
  1. ListAdapter adapter; // declare as class level variable
  2.  
  3. runOnUiThread(new Runnable() {
  4. public void run() {
  5. /**
  6. * Updating parsed JSON data into ListView
  7. */
  8. if (adapter == null) {
  9. adapter = new SimpleAdapter(
  10. DashboardActivity.this,new String[]{TAG_FULLNAME,TAG_MESSAGE},new int[]{R.id.fullname,R.id.message});
  11. setListAdapter(adapter);
  12. } else {
  13. //update only dataset
  14. allChat = latestetParedJson;
  15. ((SimpleAdapter) adapter).notifyDataSetChanged();
  16. }
  17. // updating listview
  18. }
  19. });

猜你在找的Android相关文章