如何让多个按钮在 firestore recyclerview 中工作?

How to get multiple buttons working into a firestore recyclerview?

我设法让一个按钮工作 (btnInfo),但后来我不知道如何添加第二个按钮 (btnInschrijven)。关于如何使第二个按钮起作用的任何想法?

我是编码新手,使用 YouTube 和逻辑思维,但有些东西我找不到或想不出来。

This is what it looks like

适配器:

 public  class LesViewHolder extends RecyclerView.ViewHolder{

    TextView Lijst_Soort, Lijst_Wanneer, Lijst_Waar;


    public LesViewHolder(@NonNull View itemView){
        super(itemView);

        Lijst_Soort = itemView.findViewById(R.id.idLes);
        Lijst_Waar = itemView.findViewById(R.id.idWaar);
        Lijst_Wanneer = itemView.findViewById(R.id.idWanneer);
        btnInfo = itemView.findViewById(R.id.btnInfo);
        btnInschrijven = itemView.findViewById(R.id.btnInschrijven);

        btnInfo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              int position = getAdapterPosition();
                if(position !=RecyclerView.NO_POSITION && listener !=null){
                    listener.onItemClick(getSnapshots().getSnapshot(position), position );
                }
            }
        });
}

 public LesAdapter getInstance() {
    return instance;
    }
    public interface OnItemClickListener{
    void onItemClick(DocumentSnapshot documentSnapshot, int position);
    }

    public void setOnItemClickListener(OnItemClickListener listener){
    this.listener = listener;

    }

主要片段:

     adapter.setOnItemClickListener(new LesAdapter.OnItemClickListener() {
        @Override
        public void onItemClick(DocumentSnapshot documentSnapshot, int position) {


            Timestamp wanneer = documentSnapshot.getTimestamp("Wanneer");
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("E d MMMM HH:mm");
            String dateTime = simpleDateFormat.format(wanneer.toDate());
            Intent intent = new Intent(getActivity(), Deelnamelijst.class);
            intent.putExtra("Welke les", dateTime);
            startActivity(intent);
        }
    });
   

使用以下代码更改您的代码

public interface OnItemClickListener{
     void onItemClick(DocumentSnapshot documentSnapshot, int position);
     void onSecondButtonClick(DocumentSnapshot documentSnapshot, int position);
     //you can add any number of methods here as per your requrenments
}

现在在第二个按钮上添加点击侦听器并执行此操作

 btnInschrijven.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
          int position = getAdapterPosition();
            if(position !=RecyclerView.NO_POSITION && listener !=null){  
              listener.onSecondButtonClick(getSnapshots().getSnapshot(position), position );
            }
        }
    });

现在,在您的 activity 中,无论您在何处分配 OnItemClickListener,您都需要覆盖您在 interface

中创建的新方法

因此,当您单击第二个按钮时,onSecondButtonClick() 将执行,重写方法下的代码将执行

 adapter.setOnItemClickListener(new LesAdapter.OnItemClickListener() {
    @Override
    public void onItemClick(DocumentSnapshot documentSnapshot, int position) {
           //...
    }

    @Override
    public void onSecondButtonClick(DocumentSnapshot documentSnapshot, int position) {
          //todo here you get click
    }
});