2013-02-04 43 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

相关问题