我有一个带有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);
答案 0 :(得分:1)
像往常一样在适配器中设置OnClickListener,但保留对片段的引用!
让我们说你的片段类是MyFragment。将您的片段传递给适配器; -i.e.在构造函数
中private MyFragment theFragment;
public YourAdapter(MyFragment f) {
this.theFragment = f;
}
通过这种方式,您可以在设置的每个OnClickListener中使用theFragment
。