RecyclerView onClick根本不起作用

时间:2016-10-18 20:26:41

标签: android onclick android-recyclerview onclicklistener

我正在尝试在onclick中设置RecyclerView方法。它在另一个项目上工作但不在这里。我在网上搜索但无法弄明白。甚至没有吐司出现。有人可以向我解释我在哪里弄错了吗?

这是我的代码:

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();
    }
}

2 个答案:

答案 0 :(得分:0)

可能会迟到但是在你的布局xml文件中你应该添加属性clickable =" false"并且也可以关注=" false"在你的情况下的子视图,textview和imageview

答案 1 :(得分:0)

在我的情况下,我在其他类的InterceptorCardView中使用RecyclerView阻止了recyclerview的onClickListener, 当我使用CardView对其进行更改时,效果很好

注意:我删除了clickable =“ false”,focusable =“ false”。