我有一個使用XML解析每5秒刷新一次的列表視圖。刷新後,列表的當前位置返回到第一個位置。有沒有可能的方法來解決這個問題?更新arrayAdapter中的數據後列表視圖返回頂部postion
5
A
回答
3
使用lv.smoothScrollToPosition(pos)
其中pos可以是任何int,最好是適配器的長度,如果您希望listview到自動滾動到刷新的最後一個添加條目。
public void smoothScrollToPosition (int position)
Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed.
+0
對於我的情況,這是唯一的選項,即使notifyDataSetChanged()被觸發,也是實際可行的。 – greg7gkb 2012-07-31 01:53:48
5
通過使用setAdapter()更新列表Android將重置位置。嘗試改變適配器。
我不知道你使用的是哪個適配器,所以這裏有兩個例子。
ArrayAdapter
adapter = list.getAdapter();
if (adapter == null) {
// Create new adapter + list.setAdapter()
} else {
adapter.clear();
adapter.addAll(newData);
adapter.notify(notifyDataSetChanged());
}
的CursorAdapter
adapter.changeCursor(newCursor);
2
這個代碼將會幫助你....
// get position of listview
int index = listView.getFirstVisiblePosition();
View v = listView.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();
// notify dataset changed or re-assign adapter here
//re-assign the position of listview after setting the adapter again
listView.setSelectionFromTop(index, top);
乾杯:)
+0
優秀!!! ... – ajay 2015-06-30 17:24:49
-1
試試這個
adapter.notifyDataSetChanged();
相關問題
- 1. Android - 清單更新後返回頂部
- 2. AJAX調用成功並返回數據後的更新視圖
- 3. 在更新數據庫sqlite後更新列表視圖
- 4. 在列表視圖頂部的覆蓋更新按鈕?
- 5. onListItemClick從該項目當前視圖頂部返回數據
- 6. 點擊圖片後返回頂部
- 7. 在Android中向數據庫添加新數據後更新列表視圖
- 8. 列表視圖和數據更新
- 9. 如何重新排列列表視圖項目到列表視圖頂部
- 10. 在ArrayAdapter和列表視圖中的NullpointerException
- 11. 在局部視圖中更新數據
- 12. 更新表視圖數據
- 13. 如何在列表視圖的頂部添加添加數據
- 14. Rails選擇列表返回頂部?
- 15. 更新WPF列表視圖作爲數據庫表更新
- 16. 列表視圖只有更新後,我點擊列表視圖
- 17. 在arrayadapter中堆疊framelayout頂部的視圖
- 18. 將數據返回到局部視圖
- 19. 更新列表視圖中使用新的數據
- 20. 從列表視圖頂部加載更多數據的最佳方法android
- 21. 列表視圖沒有完全更新數據綁定()後回發
- 22. 從Fragment類的外部更新視圖的arrayAdapter
- 23. 無法更新ArrayAdapter中的數據
- 24. asynctask完成後更新列表視圖
- 25. 更新視圖上的繼續(返回從選擇列表視圖中的項目後,查看)
- 26. 從數據庫顯示列表視圖數據與最新的結果在頂部和最舊的底部
- 27. 從子視圖返回後更新表格視圖單元格標籤
- 28. 從數據庫中刪除項目後更新片段中的列表視圖
- 29. 將LinearLayout放在列表視圖頂部
- 30. 如何獲取新值到列表視圖的頂部位置
請告訴我們如何刷新列表視圖。 – flo 2012-03-26 11:14:15
可能您清除了列表數據並設置了全部新數據。您可以使用http://developer.android.com/reference/android/view/View.html scrollTo(INT,INT)方法 – pleerock 2012-03-26 11:24:08
@flo '公共無效TimerMethod(){ \t \t runOnUiThread(新的Runnable() { \t \t \t公共無效的run(){ \t \t \t \t // Toast.makeText(getApplicationContext(), 「您好這是PIYUSH」, \t \t \t \t // Toast.LENGTH_LONG).show(); \t \t \t \t解析(鏈接); \t \t \t \t setAdapter(); \t \t \t} \t \t}); ' 每5秒調用一次該方法。 parse()用於xml解析,setAdapter()用於將新值設置爲listadapter – ASP 2012-03-26 13:06:41