Мое приложение извлекает данные из API и заполняет представление переработчика изображением и названием категории продуктов питания. Когда я нажимаю на любое изображение, открывается другое действие, а второе показывает список продуктов этой категории. Но когда я открываю какую-либо категорию, она работает впервые, но если я нажму кнопку «Назад» или кнопку «Вверх», вернусь к MainAcctivity и нажму на любую другую категорию, тогда продукты питания во втором действии не изменятся (метод ViewModel не вызывается ).
См. Полный код на GitHub: https://github.com/harshabhadra/Foodie/tree/master/app/src/main
Это метод onClick от MainAcctivity. Я отправляю название категории через Intent:
@Override
public void onItemClick(int item) {
Intent categoryIntent = new Intent(MainActivity.this,
CategoryActivity.class);
categoryIntent.putExtra("name", foodAdapter.getFood(item));
startActivity(categoryIntent);
}
Это моя вторая активность:
Intent intent = getIntent();
Food food = intent.getParcelableExtra("name");
category = food.getFoodName();
setTitle(category);
foodViewModel = ViewModelProviders.of(this).get(FoodViewModel.class);
foodViewModel.getFoodCategory(category).observe(this, new
Observer<List<FoodCategory>>() {
@Override
public void onChanged(List<FoodCategory> foodCategories) {
if (!foodCategories.isEmpty()) {
progressBar.setVisibility(View.GONE);
categoryAdapter = new
CategoryAdapter(CategoryActivity.this, foodCategories);
recyclerView.setAdapter(categoryAdapter);
Log.e(TAG, "Category Name: " + category);
}else {
Toast.makeText(CategoryActivity.this, "empty list",
Toast.LENGTH_SHORT).show();
}
}
});
Я ожидаю увидеть другой список продуктов во Втором занятии в зависимости от категории, когда я нажму на эту категорию в MainAcctivity.