2015-03-03 55 views
0

我有一個listview和一個相應的listview適配器。在Listview中突出顯示所選視圖Android

在Listview中顯示的視圖是我自己寫的,它是一個按鈕和一個圖像按鈕的框架佈局。 imagebutton是一個紅色十字,刪除條目,常規按鈕選擇條目。

當用戶按下常規按鈕時,該項目被選中,我想通過將該項目的背景設置爲綠色來向用戶顯示此項目。應用程序存儲用戶選擇的項目以及下次列表視圖的呈現時間,應該選擇該項目並使其綠色。

請注意,在我的列表視圖中應始終存在一個和一個選定的項目。

在getView(..在我adaper方法,這是很容易改變,當用戶點擊它的按鈕的顏色,但用戶點擊前一個綠色按鈕是不可能的,我引用。

  • 我試圖存儲參考先前選擇的按鈕,但它從未重新繪製
  • 我試圖消除,並從列表中添加所述數據項來觸發notifyDataSetChanged但它從未重新繪製
  • 我試圖setChoiceMode(ListView.CHOICE_MODE_SINGLE),但是這並不是因爲我不知道如何捕捉getView中的選擇方法和油漆的不同取決於它的選擇與否。

我看到的所有指南都建議使用notifyDataSetChanged。但是,在這種情況下,基礎數據不會被更改,並且這是不正確的(或可能的)解決方案。

所以我認爲我的問題歸結爲:如何可以在我的列表視圖中引用另一個視圖? (並且是的,我看過這個帖子:Highlight selected item in ListView on Android。它描述了我的問題,並回答「然後改變之前選擇的項目的背景的顏色恢復到正常」,但我仍然不能參考先前選擇的項目項目。

謝謝!

+0

http://stackoverflow.com/questions/16189651/android-listview-selected-item-stay-highlighted – 2015-03-03 14:10:57

+0

感謝您的發現。然而,這是同樣的問題。先前選擇的條目的選擇未被更新。 – Joakim 2015-03-03 14:25:34

回答

0

你爲什麼不使用Radio Buttons?這正是你需要的。你可以在每行添加一個「紅叉」來刪除該行設計,所選線是獨特的,你可以迭代你的RadioGroupRadioButton.isChecked();來相應地設置背景顏色。

+0

你的意思是代替imagebutton嗎? (因爲我需要按十字和十字外的功能)。如果我用單選按鈕替換圖像按鈕,感覺就像我再次遇到同樣的問題 - 之前按下的單選按鈕在視圖中無法觸及。 (而在另一種情況下,我沒有得到我想要的功能) – Joakim 2015-03-04 08:18:52