Android Всплывающее меню + База данных и просмотр меняющегося вопроса - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь создать всплывающее меню при нажатии кнопки. Всплывающее меню должно быть сгенерировано со значениями из столбца в базе данных, и когда пользователь щелкает по параметрам меню, он должен затем вызвать функцию для извлечения всех элементов, связанных с этим значением в базе данных.

Контекст: это простой список покупок, и кнопка должна позволять вам отображать ТОЛЬКО товары в определенном магазине.

У меня проблема с обработчиком 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());
    }
...