我希望能够在我的recyclerview“planner”中单击一个info按钮,这样我就可以看到我的(firestore)参与者在特定的事件/日期中。
但我遇到了一个我无法纠正的错误。我遇到的最大问题是我在碎片中工作。所以复制youtube并不总是有效的我对编码和java还不熟悉。
我想让它成为非静态的
但当我解决这个问题时:
它想让它再次静止
内部适配器
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);
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 interface OnItemClickListener{
void onItemClick(DocumentSnapshot documentSnapshot, int position);
}
public void setOnItemClickListener(OnItemClickListener listener){
this.listener = listener;
}
在homefragment内部,以前使用lesadapter.setonitemclicklistener可能是错误的吗?
LesAdapter.setOnItemClickListener(new LesAdapter.OnItemClickListener() {
@Override
public void onItemClick(DocumentSnapshot documentSnapshot, int position) {
String wanneer = documentSnapshot.getString("Wanneer");
Intent intent = new Intent(getActivity(), Deelnamelijst.class);
intent.putExtra("Welke les", wanneer);
startActivity(intent);
}
});
这就是我所尝试的:
https://www.youtube.com/watch?v=3wr4qaivucw
https://www.youtube.com/watch?v=zxogg2xtjzu
1条答案
按热度按时间aemubtdh1#
错误是试图呼叫
LesAdapter.setOnItemClickListener
假设setOnItemClickListener
方法是一个静态方法,因此可以在不创建示例的情况下调用它。以你为例,
setOnItemClickListener
不是静态方法,因此要调用它,需要LesAdapter
. 所以用你喜欢的示例