简体   繁体   English

如何根据项目position在recyclerView中添加OnClickListener

[英]How to add OnClickListener in recyclerView according to the item position

RecyclerView Code: 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM