我正在尝试从我的适配器类实现onClickListener,以回调片段中的方法。我遵循了一个示例,但是在片段类中仍然对adapter.setOnItemClickListener遇到错误,我看不出问题出在哪里。
这是在我遇到错误的片段类的onCreateView方法中:
SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
((BusAdapter) adapter).setOnItemClickListener(new BusAdapter.OnItemClickListener(){
@Override
public void onItemClick(View view, int position){
}
});
return view;
这是我的适配器类中处理onClickListener的部分:
public BusAdapter() {
}
public interface OnItemClickListener{
void onItemClick(View view, int pos);
}
public static class ViewHolder extends RecyclerView.ViewHolder {
TextView timeTextView, destinationTextView, routeTextView, minsTextView;
ViewHolder(View v) {
super(v);
this.timeTextView = v.findViewById(R.id.due);
this.destinationTextView = v.findViewById(R.id.terminus);
this.routeTextView = v.findViewById(R.id.route);
this.minsTextView = v.findViewById(R.id.due_mins_text);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = ViewHolder.super.getAdapterPosition();
onItemClickListener.onItemClick(v, position);
}
});
}
}
答案 0 :(得分:0)
您应该在适配器中自己实现setOnItemClickListemer(BusAdapter.OnItemClickListener listener)
方法,因为它具有特定的签名。