我使用 RecyclerView
适配器在活动中显示数据,我想在活动中实现 onClickListener
目前,我正在设置 onClickListener
在 adapterc7 中正常工作-美好的。
public void onBindViewHolder(MyHolder holder, final int position) {
final Listdata data = listdata.get(position);
holder.vname.setText(data.getName());
holder.vname.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(activity, "clicked on " +position, Toast.LENGTH_SHORT).show();
}
});
}
但是我想在活动中实现它,所以我有更大的控制权。这不符合我的目的。我认为这对我们很多人都有用。
原文由 Amir Dora. 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要在此处查看 本教程,以便更好地了解如何实现所需的行为。
如果要从您的活动中处理
onClickListener
,您需要基于带有接口的回调实现来工作。将接口从活动传递到您的适配器,然后在单击某些项目时从您的适配器调用回调函数。这是教程中的示例实现。
让我们首先拥有界面。
您需要修改适配器以将侦听器作为参数,如下所述。
现在在你的
onBindViewHolder
方法中,设置点击监听器。现在在您的
RecyclerView
中设置适配器。所以整个适配器代码如下所示。