我使用自定義CursorAdapter從Sqlite數據庫的數據填充ListView。從列表視圖中移動光標位置時丟失了活動
當用戶離開我的活動並稍後回來時,我放鬆了光標處的位置,並且ListView再次定位到第一個項目。
跳過startManagingCursor()時,它按預期工作。我如何解決這個問題?
這裏是()稱爲OnCreate中的代碼片段:
cursor = db.getAll();
startManagingCursor(cursor);
myAdapter = new MyAdapter(listview.getContext(), cursor, true);
listview.setAdapter(myAdapter);
您可能需要將光標位置存儲在一個包中 – LatinSuD 2010-09-08 22:10:09
這對我來說似乎是一個錯誤。我無法弄清楚是什麼導致它,但你是正確的,它的託管光標和自動重新查詢。這看起來很奇怪。爲什麼這種方便與正常的ListView行爲衝突,似乎是錯誤的設計。重新請求有可能導入全新的數據,在這種情況下,ListView無法在邏輯上恢復狀態。大多數情況下,雖然查詢並不實際改變數據集,所以它肯定應該恢復位置。 – jfelectron 2011-01-29 07:44:55