У меня есть следующий сценарий.У меня есть активность, которая содержит фрагмент.В этом фрагменте я показываю некоторые записи из внутренней базы данных.Я также использую адаптер, который выглядит следующим образом:
public class MovieAdapter extends PagedListAdapter<Movie, MovieAdapter.MovieViewHolder> {
private Context context;
public MovieAdapter(Context context) {this.context = context;}
@NonNull
@Override
public MovieViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//Create the view
}
@Override
public void onBindViewHolder(@NonNull final MovieViewHolder holder, int position) {
Movie movie = getItem(position);
String title = movie.title;
holder.titleTextView.setText(title);
MovieRepository movieRepository = new MovieRepository(context);
LiveData<Movie> liveData = movieRepository.retrieveFavoriteMovie(movie.id);
liveData.observe(context, m -> { //Error
if(m != null) {
boolean favorite = m.favorite;
if(favorite) {
//Do something
} else {
//Do something else
}
}
});
}
class MovieViewHolder extends RecyclerView.ViewHolder {
ImageView favoriteImageView;
TextView titleTextView;
MovieViewHolder(View itemView) {
super(itemView);
titleTextView = itemView.findViewById(R.id.title_text_view); favoriteImageView = itemView.findViewById(R.id.favorite_image_view);
}
}
}
В onBindViewHolder
я пытаюсь проверить, существует ли определенный фильм в базе данных Romm, но я получаю эту ошибку:
Wrong 1st argument type. Found: 'android.content.Context', required: 'android.arch.lifecycle.LifecycleOwner'
Итак, как преобразовать контекст фрагмента в LifecycleOwner
, чтобы я мог использовать его в качестве аргумента в моем методе?