我正在尝试从我的适配器类实现一个onClickListener来回调我片段中的方法。我按照一个示例但仍然在fragment类中的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);
}
});
}
}
您应该自己在适配器中实现setOnItemClickListemer(BusAdapter.OnItemClickListener listener)
方法,因为它具有特定的签名。