听取listview中的点击按钮

时间:2013-02-04 13:24:42

标签: java android listview button adapter

我有一个带有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 个答案:

答案 0 :(得分:1)

像往常一样在适配器中设置OnClickListener,但保留对片段的引用!

让我们说你的片段类是MyFragment。将您的片段传递给适配器; -i.e.在构造函数

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

通过这种方式,您可以在设置的每个OnClickListener中使用theFragment