我里面有一个RecyclerView和一个喜欢的按钮。例如,当我单击按钮时,我想发送Toast消息。样例代码:
class ViewHolder extends RecyclerView.ViewHolder{
Button button;
public ViewHolder(@NonNull View itemView) {
super(itemView);
button = itemView.findViewById(R.id.button);
}
}
@Override
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder holder, final int position) {
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context, ""+list.get(position).getId(), Toast.LENGTH_SHORT).show();
}
});
}
那么这种方法正确吗?由于性能问题,我不确定这是否必须在onBindViewHolder()内部?那么,您能告诉我RecyclerView中子项单击事件是否有更好的方法吗?顺便说一下,这些只是示例代码。实际上,当我单击按钮(请求服务器)时,我正在处理更复杂的事情。
您可以简单地这样做:
class ViewHolder extends RecyclerView.ViewHolder{
Button button;
public ViewHolderMultiple(@NonNull View itemView) {
super(itemView);
button = itemView.findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View view) {
Toast.makeText(context, ""+list.get(getAdapterPosition()).getId(), Toast.LENGTH_SHORT).show();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句