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);
4

1 回答 1

1

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

假设您的片段类是 MyFragment。将您的片段传递给适配器;-ie 在构造函数中

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

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

于 2013-02-04T13:32:27.623 回答