onBindViewHolder 必须声明为抽象的

onBindViewHolder must be declared abstract

我收到错误消息:class "FlickrRecyclerViewAdapter" 必须声明为抽象的或在 'Adapter'

中实现方法抽象方法 onBindViewHolder(VH, int)

虽然这个错误应该是不言而喻的,但我已经实现了 onBindViewHolder 并且错误仍然存​​在。

相关代码 -

public class FlickrRecyclerViewAdapter extends RecyclerView.Adapter {
    private List<Photo> mPhotosList;
    private Context mContext;

    public FlickrRecyclerViewAdapter(Context context, List<Photo> photosList) {
        mContext = context;
        this.mPhotosList = photosList;
    }

    @Override
    public void onBindViewHolder(FlickrImageViewHolder flickrImageViewHolder, int i) {

            Photo photoItem = mPhotosList.get(i);
            Picasso.with(mContext).load(photoItem.getmImage())
                    .error(R.drawable.placeholder)
                    .placeholder(R.drawable.placeholder)
                    .into(flickrImageViewHolder.thumbnail);

        }
    }

谢谢

适配器的定义是

RecyclerView.Adapter<VH extends android.support.v7.widget.RecyclerView.ViewHolder>

其中 VHViewHolder 的子类。所以你可以改变你 onBindViewHolder 的签名,比如

@Override
public void onBindViewHolder(RecyclerView.ViewHolder flickrImageViewHolder, int i) {

或更改

extends RecyclerView.Adapter {

extends RecyclerView.Adapter<FlickrImageViewHolder> {

RecyclerView.Adapter 你已经扩展了一个方法:

public void onBindViewHolder(RecyclerView.ViewHolder holder, int position)

您必须覆盖。使用您正在使用的方法签名,您必须像这样扩展:

public class FlickrRecyclerViewAdapter extends RecyclerView.Adapter<FlickrImageViewHolder>