samuel zaffran
samuel zaffran

Reputation: 157

RecyclerView onClick is not working at all

I'm trying to set an onclick method in my RecyclerView. It worked on another project but not here. I searched on the web but can't figure it out. Not even the toast is popping up. Can someone, please, explain to me where I am making a mistake?

Here's my code:

private Context mContext;
private MenuImages[] mMenuImages;

public MenuAdapter(Context context, MenuImages[] menuImages){
    mContext = context;
    mMenuImages = menuImages;
}

@Override
public MenuViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.menu_list_item, parent, false);
    MenuViewHolder viewHolder = new MenuViewHolder(view);

    return viewHolder;
}

@Override
public void onBindViewHolder(MenuViewHolder holder, int position) {
    holder.bindMenu(mMenuImages[position]);
}

@Override
public int getItemCount() {
    return mMenuImages.length;
}

public class MenuViewHolder extends RecyclerView.ViewHolder
        implements View.OnClickListener{

    public ImageView mImageView;
    public TextView mTextView;

    public MenuViewHolder(View itemView) {
        super(itemView);

        mImageView = (ImageView) itemView.findViewById(R.id.itemImageView);
        mTextView  = (TextView) itemView.findViewById(R.id.textView2);

        itemView.setOnClickListener(this);
    }

    public void bindMenu(MenuImages menuImage){
            mImageView.setImageBitmap(menuImage.getImageMenu());
            mTextView.setText(menuImage.getTitleImageMenu());
    }

    @Override
    public void onClick(View v) {
        Toast.makeText(v.getContext(), getLayoutPosition(), Toast.LENGTH_LONG).show();
    }
}

Upvotes: 0

Views: 1255

Answers (2)

Amin Pinjari
Amin Pinjari

Reputation: 2173

in my case I was using RecyclerView in InterceptorCardView of other class wich was preventing onClickListener of recyclerview, when I changed it with CardView and it worked perfectly

Note: I removed clickable = "false" ,focusable = "false".

Upvotes: 1

Karam Melad
Karam Melad

Reputation: 225

it may be late but in your layout xml file you should add attribute clickable = "false" and also focusable = "false" to the children view ,textview and imageview in your case

Upvotes: 0

Related Questions