如何为recyclelerview填充的每个按钮设置不同的onclick监听器

时间:2018-01-20 14:09:30

标签: java android button adapter cardview

我正在修改此代码> https://rubensousa.github.io/2016/08/viewpagercards以适合我自己的应用程序但是你可以从源代码中找到没有方法来处理每个按钮的onclick事件,我的计划是为点击cardviews的每个按钮添加不同的意图所以请帮帮我我是android和java的noob / beginner

4 个答案:

答案 0 :(得分:0)

为此,您可以检查Recyclerview适配器onBindViewHolder中按钮的onclick按钮的状态。您可以在按钮点击中使用if(position == 1){ - 做某事 - },if(position == 2){ - do other thing - }。

答案 1 :(得分:0)

您可以根据Switch statement中的位置使用onBindViewHolder来尝试。例如:

Switch(position){
case 0:
//Button No.1
break;
case 1:
//Button No.2
break;
.....
}

答案 2 :(得分:0)

您需要在库中创建自定义适配器,代码如下:

   public class CategoryAdapter extends RecyclerView.Adapter<CategoryAdapter.ViewHolder> {
    Context context;
    List<Category> list;

    public CategoryAdapter(Context context, List<Category> list){
        this.list = list;
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        View view = inflater.inflate(R.layout.item_category, null);
        return new CategoryAdapter.ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {

        viewHolder.btnOne.setOnItemClickListener(new View.OnItemClickListener{
// do something
});
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        Button btnOne, btnTwo;
        public ViewHolder(View view) {
            super(view);
            btnOne = view.findViewById(R.id.btn_one);
            btnTwo = view.findViewById(R.id.btn_two);

        }
    }

}

答案 3 :(得分:0)

Ge你的按钮参考&amp;将每个onClick侦听器放在onBindViewHolder()方法中。