如何让多个按钮在 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
}
});
我设法让一个按钮工作 (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
}
});