Как добавить OnClickListener в recyclerView в соответствии с позицией товара - PullRequest
0 голосов
/ 24 сентября 2019

Код 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 );
    }

Как добавить OnClickListener в recyclerView в соответствии с позицией элемента

1 Ответ

0 голосов
/ 24 сентября 2019

Как добавить OnClickListener в recyclerView в соответствии с позицией элемента

Чтобы добавить OnClickListener к RecyclerView элементам, вы добьетесь этого в своем пользовательском RecyclerView.ViewHolder классе, установив. onClickListener() к представлению, переданному в конструктор ViewHolder

фрагмент из вашего кода:

статический класс ViewHolder расширяет 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(); 
        }
    }
}
...