代码之家  ›  专栏  ›  技术社区  ›  MickeyMGK

如何为由recyclerview填充的每个按钮设置不同的onclick侦听器

  •  0
  • MickeyMGK  · 技术社区  · 7 年前

    我正在修改此代码> https://rubensousa.github.io/2016/08/viewpagercards 为了适应我自己的应用程序,但正如你从源代码中可以发现的那样,没有任何方法可以处理每个按钮的onclick事件,我的计划是为在CardView上单击的每个按钮添加不同的意图,所以请帮助我,我是android和java的新手

    4 回复  |  直到 7 年前
        1
  •  0
  •   TREAF ALSHEMERI    7 年前

    您可以使用 Switch statement 基于中的职位 onBindViewHolder . 例如:

    Switch(position){
    case 0:
    //Button No.1
    break;
    case 1:
    //Button No.2
    break;
    .....
    }
    
        2
  •  0
  •   Puneet Sharma    7 年前

    为此,您可以检查recyclerview adapter onBindViewHolder中onclick of button中与按钮位置相关的条件。您可以在按钮单击中使用if(position==1){--do something--},if(position==2){--do other thing--}。

        3
  •  0
  •   Amir Mohsenian    7 年前

    您需要在库中创建自定义适配器,下面的代码是示例:

       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);
    
            }
        }
    
    }
    
        4
  •  0
  •   Soumya Priya Nayak    7 年前

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