我在我的应用程序中设置了一个计时器,我可以从Web服务获取一些信息,并导致列表视图显示.现在我的问题是,每次定时器运行时,回滚到开始…
在列表视图中每次刷新时如何保持滚动位置?
我的一部分代码:
runOnUiThread(new Runnable() { public void run() { /** * Updating parsed JSON data into ListView * */ 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 } ); // updating listview setListAdapter(adapter); } });
TNX.
解决方法
不要调用setAdapter().做这样的事情:
ListAdapter adapter; // declare as class level variable runOnUiThread(new Runnable() { public void run() { /** * Updating parsed JSON data into ListView */ if (adapter == null) { adapter = new SimpleAdapter( DashboardActivity.this,new String[]{TAG_FULLNAME,TAG_MESSAGE},new int[]{R.id.fullname,R.id.message}); setListAdapter(adapter); } else { //update only dataset allChat = latestetParedJson; ((SimpleAdapter) adapter).notifyDataSetChanged(); } // updating listview } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。