无法解析片段中的方法onItemClickListener

时间:2019-04-10 13:35:04

标签: java android firebase android-fragments onitemclicklistener

我正在尝试从我的适配器类实现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);
                }
            });
        }
    }

1 个答案:

答案 0 :(得分:0)

您应该在适配器中自己实现setOnItemClickListemer(BusAdapter.OnItemClickListener listener)方法,因为它具有特定的签名。