Вот соответствующий код из моего ListFragment:
Код: Выделить всё
public class ListFragment extends Fragment {
ImageView listTitleImage;
RecyclerView recyclerView;
List dataList = new ArrayList();
LinearLayoutManager linearLayoutManager;
RoomDB database;
RecyclerViewFavoritesAdapter adapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_list,container,false);
listTitleImage = v.findViewById(R.id.listTitleImage);
recyclerView = v.findViewById(R.id.recyclerViewFavorites);
database = RoomDB.getInstance(v.getContext());
dataList = database.mainDao().getAll();
linearLayoutManager = new LinearLayoutManager(v.getContext());
recyclerView.setLayoutManager(linearLayoutManager);
adapter = new RecyclerViewFavoritesAdapter(v.getContext(),dataList);
recyclerView.setAdapter(adapter);
return v;
}
}
Код: Выделить всё
@Override
public boolean onMenuItemClick(MenuItem item) {
if(item.getItemId() == R.id.menuAdd){
int movie_id = resultList.get(pos).getMovieId();
String title = resultList.get(pos).getTitle();
String posterpath = resultList.get(pos).getPoster_path();
database = RoomDB.getInstance(context);
MainData mainData = new MainData();
mainData.setMovie_id(movie_id);
mainData.setMovie_name(title);
mainData.setMovie_poster(posterpath);
int movie_id_in_database = database.mainDao().get_movie_id(movie_id);
if(movie_id_in_database == 0){
database.mainDao().insert(mainData);
} else{
Toast.makeText(context, "You already have that movie in list !", Toast.LENGTH_SHORT).show();
}
return true;
}
else if(item.getItemId() == R.id.menuShowDetails){
int movieId = resultList.get(pos).getMovieId();
// Intent intent1 = new Intent(context, MovieDetails.class);
// intent1.putExtra("movie_id",movieId);
// context.startActivity(intent1);
return true;
}
return false;
}
- Как синхронизировать обновления между ListFragment и фрагментом, в который добавляются фильмы База данных комнат?
- Какой подход следует использовать, чтобы гарантировать, что RecyclerView в ListFragment обновляется сразу после добавления фильма, не требуя, чтобы приложение было вновь открыт?
Подробнее здесь: https://stackoverflow.com/questions/671 ... in-android