我有一個活動,它顯示了一個微調(項目類別的選擇),一個列表視圖來顯示訂單和另一個listview -articles-根據選定的類別(微調)動態獲取按鈕。 當文章按鈕被點擊時,我想將文章添加到orderAdaptor。如何將項目添加到listviewadapter以響應正在單擊的按鈕?
當我在View.OnClickListener中時,如何獲得對列表適配器的引用?
我有一個活動,它顯示了一個微調(項目類別的選擇),一個列表視圖來顯示訂單和另一個listview -articles-根據選定的類別(微調)動態獲取按鈕。 當文章按鈕被點擊時,我想將文章添加到orderAdaptor。如何將項目添加到listviewadapter以響應正在單擊的按鈕?
當我在View.OnClickListener中時,如何獲得對列表適配器的引用?
您需要發佈代碼才能獲得體面的幫助,但聽起來好像您正在將View.OnClickListener作爲活動內部的匿名內部類來實現。
通常你可以隨時獲取到適配器通過完全限定參考:
MyActivity.this.mListView.getAdapter();
其中MyActivity是延伸活動,擁有一個名爲mListView成員的ListView推測的類名。
您可以將它傳遞給onClickListener的構造函數並將其保存在偵聽器的成員變量中,或者您可以在視圖上使用setTag
來隱藏對按鈕中適配器的引用,然後在onClick偵聽器中檢索它getTag
。或者,您可以使視圖偵聽器成爲您的活動的非靜態內部類,並以與活動中其他所有內容相同的方式訪問適配器(儘管我通常更願意將其顯式化並將偵聽器保持靜態/放在不同的類中)。
它實際上並不是一個匿名的內部類,而是一個單獨的類。根據您的評論,我簡單地將一個構造器添加到我的onclickhandler類中,傳遞父級活動。然後,我可以使用你的解決方案,並做到了這一點。 – Tanguy 2011-03-23 06:40:11