[英]How to add OnClickListener in recyclerView according to the item position
OnClickListener
RecyclerView 代码: OnClickListener
package com.example.cardview;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class ArrayAdapter extends RecyclerView.Adapter<ArrayAdapter.ViewHolder> {
private String[] divisionName;
ArrayAdapter(String[] phoneNumebr) {
this.divisionName = phoneNumebr;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
Context context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from( context );
View v = inflater.inflate( R.layout.element, parent, false );
return new ViewHolder( v );
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
holder.cNumbers.setText(divisionName[position] );
holder.itemView.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(this,divisionName[position],Toast.LENGTH_LONG).show();
}
} );
}
@Override
public int getItemCount() {
return divisionName.length;
}
static class ViewHolder extends RecyclerView.ViewHolder{
TextView cNumbers;
ViewHolder(@NonNull View itemView) {
super( itemView );
this.cNumbers = itemView.findViewById( R.id.cNumbers );
}
How to add OnClickListener in recyclerView according to the item position如何根据项目position在recyclerView中添加OnClickListener
How to add OnClickListener in recyclerView according to the item position如何根据项目position在recyclerView中添加OnClickListener
To add OnClickListener to RecyclerView
items, you achieve that within your custom RecyclerView.ViewHolder
class, by setting.要将 OnClickListener 添加到RecyclerView
项目,您可以通过设置在自定义RecyclerView.ViewHolder
class 中实现。 onClickListener()
to the View passed into the ViewHolder constructor onClickListener()
到 View 传递给 ViewHolder 构造函数
snippet from your code:您的代码片段:
static class ViewHolder extends RecyclerView.ViewHolder{
TextView cNumbers;
ViewHolder(@NonNull View itemView) {
super( itemView );
this.cNumbers = itemView.findViewById( R.id.cNumbers );
listItem.setOnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Click on position number: " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
Toast.makeText(v.getContext(), divisionName[getAdapterPosition()],Toast.LENGTH_LONG).show();
}
}
}
}
Just Change Your Toast.只是改变你的吐司。
Toast.makeText(holder.itemView.getContext(),"You clicked "+divisionName[position],Toast.LENGTH_SHORT).show();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.