Я пытаюсь создать всплывающее меню при нажатии кнопки. Всплывающее меню должно быть сгенерировано со значениями из столбца в базе данных, и когда пользователь щелкает по параметрам меню, он должен затем вызвать функцию для извлечения всех элементов, связанных с этим значением в базе данных.
Контекст: это простой список покупок, и кнопка должна позволять вам отображать ТОЛЬКО товары в определенном магазине.
У меня проблема с обработчиком onclick. На самом деле я понятия не имею, как это сделать. Это то, что я пытался сделать, и он сообщает мне, что «элемент уже объявлен в этой области», но если я удалю тип данных «MenuItem», чтобы передать «элемент», он все равно скажет, что он уже определен.
Мне кажется, это потому, что он создает метод со своим собственным параметром, а не передает ему пункт меню. Он автоматически передает элемент меню, если я просто задаю ему другой параметр, например (MenuItem) clickedItem?
public void btnDisplayByStore(View v){
PopupMenu puStoreSelect = new PopupMenu(home_screen.this, findViewById(R.id.btnSearchByStore));
DatabaseManager DBM = new DatabaseManager(this);
ArrayList<String> alStores = DBM.getStores();
for(int i = 0; i < alStores.size(); i++) {
MenuItem item = puStoreSelect.getMenu().add(alStores.get(i));
puStoreSelect.setOnMenuItemClickListener((MenuItem item) -> {
populateItemListByStore(item.getTitle().toString());
return true;
});
}
puStoreSelect.getMenuInflater().inflate(alStores.size(), puStoreSelect.getMenu());
}