2011-11-14 88 views
0

我有一個帶有複選框的項目列表視圖。Android在ListView中維護所選項目的位置

我有一個自定義的CursorAdapter,它檢查複選框,如果字段值是「1」,那麼它會得到View方法。

當我點擊列表視圖中的列表項時,它會檢查複選框並將字段更新爲「1」。我遇到的問題是,當我在自定義適配器上調用changecursor方法時,它會重新加載所有內容並指向第一項,而不是我剛剛單擊的項。

在changeCursor方法我有以下幾點:

public void changeCursor(Cursor cursor) { 
    super.changeCursor(cursor); 
    init(cursor); 
    notifyDataSetChanged(); 
} 

是否有保持該姿勢或替代方法重新加載光標沒有使它跳轉到第一個項目的方法嗎?

回答

1

您基本上需要一些數據結構來跟蹤檢查的項目。您可以在自定義適配器中使用布爾數組。

更多信息請參考以下鏈接Custom listview with checkbox problem

列表視圖用複選框

,如果你正在尋找一個例子試試這個http://appfulcrum.com/?p=281教程解決了使用共享偏好列表視圖中的複選框問題。

謝謝

+0

好吧,它的工作將有所調整。謝謝! – Maurice

+0

你是WC ..... – bHaRaTh

+0

好的我有一個問題。希望這是有道理的。當我使用getView加載列表視圖,這意味着我從遊標獲取值,我使用此值在arrayList中設置布爾值。然後我使用這個數組列表來顯示覆選框。那裏沒問題。當他檢查複選框時,問題就開始了。數據發生變化,但光標保持不變。我在arrayList中將position的值設置爲true,但getView被調用時,會觸發OLD遊標,並將舊數據加載到ArrayList布爾值爲false。 – Maurice