2013-02-04 42 views
0

我有一個帶有listview的片段。 列表視圖使用自定義適配器。列表視圖中的每個項目都包含一個按鈕。 我需要的是讓活動知道在列表視圖中按下哪個按鈕。我需要這個,因爲片段需要發送一個消息給它的活動,這取決於按下哪個按鈕。所以基本上我想OnClickListener在片段,而不是在適配器。收聽點擊按鈕在列表視圖

我試圖通過遍歷其所有元素來獲取列表中的按鈕,並執行getChild(),但它不會對點擊作出反應。

Button theButton = (Button)theListView.getChildAt(i).findViewById(R.id.button_id); 

我也試過用適配器上的getView。

Button theButton = (Button) adapter.getView(i, null, null).findViewById(R.id.button_id); 

回答

1

像往常一樣在適配器中設置OnClickListener,但保留對片段的引用!

讓我們說你的片段類是MyFragment。將你的片段傳遞給適配器; -i.e.在構造函數中

private MyFragment theFragment; 
public YourAdapter(MyFragment f) { 
    this.theFragment = f; 
} 

通過這種方式,你可以在你設定每OnClickListener使用theFragment

+1

我愛你!這解決了它。 – IronMonkey

相關問題