2014-07-12 60 views
0

在我的佈局中,我有一個按鈕和一個列表視圖。如何在點擊按鈕時更改所選項目的圖像視圖。因此,我們可以說,我選擇了5個項目,點擊按鈕後,這5個項目的圖像將被更改。在列表視圖中更改所選項目的圖像查看

所以我很困惑我應該使用什麼函數。現在我使用button.setOnClickListener,但它似乎是錯誤的,因爲只有點擊按鈕時,第一項的圖像視圖纔會更改。我應該使用listview.setItemOnClickListener嗎?或者還有其他方法可以做到這一點嗎?

非常感謝!

回答

0

一個布爾值添加到數據對象適配器。假設你有ArrayAdapter <MyDataObject>。在MyDataObject中添加某種「選定」字段,並在「選擇」行時切換它。

覆蓋適配器中的getView(您需要一個自定義適配器,順便說一句,我只是擴展ArrayAdapter)。當您渲染該行時,如果「selected」字段爲true,則顯示「other」圖像。

當您單擊該按鈕時,請在適配器上調用'notifyDataSetChanged'。這將導致可見的行刷新自己(並調用每個getView)。

我認爲這會奏效。

由於您只想在單擊按鈕時更改圖像,因此您需要具有某種全局布爾值,因此getView將不會顯示圖像,直到單擊該按鈕。

這裏的複雜情況是,您必須處理可能已經滾動出視圖的行,這些行沒有活動視圖,但邏輯上存在。這裏很難解釋這個概念。如果你不熟悉行視圖的回收,我會在ListView上提供一些教程。

0

您可以使用自定義的baseadapter在getView()方法ListView和setonclicklistener ....看教程here這是希望幫助

+0

我認爲是這種情況,當你有多個按鈕,並且按鈕是在listview中,對不對?我只有一個按鈕,它在我的列表視圖之外,但在相同的佈局。他們是一樣的嗎?謝謝 – user3799934

0

您也可以使用按鈕點擊偵聽器以及itemClickListener,但要在列表中以選定狀態創建圖像視圖,則必須調用imageview父級佈局的setSelected方法。

如果你沒有找到我,請發表評論。

謝謝

相關問題