2015-10-31 2 views
1

Я получаю ошибку: класс «FlickrRecyclerViewAdapter» должны либо быть объявлена ​​абстрактной или реализацией методы абстрактного метода onBindViewHolder (VH, Int) в «адаптер»onBindViewHolder должен быть объявлен абстрактным

Хотя эта ошибка должна быть самостоятельной explanitory, Я реализовал onBindViewHolder, и ошибка все еще присутствует.

Relvant код -

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); 

     } 
    } 

Благодаря

ответ

5

определение адаптера

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

где VH является подклассом ViewHolder. Таким образом, вы можете либо изменить подпись вас onBindViewHolder нравится

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

или изменить

extends RecyclerView.Adapter { 

с

extends RecyclerView.Adapter<FlickrImageViewHolder> { 
0

RecyclerView.Adapter, что вы расширили есть метод:

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

, что вы должны переопределить. С помощью подписи метода, которую вы используете, вы должны распространяться следующим образом:

public class FlickrRecyclerViewAdapter extends RecyclerView.Adapter<FlickrImageViewHolder>