我在我的应用程序中设置了一个计时器,我可以从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 } });