Показать всплывающее меню из пункта панели действий - PullRequest
0 голосов
/ 29 января 2019

Итак, я пытаюсь добавить PopupMenu к элементу ActionBar, который сортирует список.Я видел некоторые ответы в stackoverflow, но ни один из них не работал для меня.Ниже приведен код.

XML

Пункт меню:

<item
    android:id="@+id/sortByBackers"
    android:icon="@drawable/ic_sort"
    android:title="Sort By Backers"
    app:showAsAction="always" />

PopupMenu:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/default_list"
    android:title="Default" />
<item
    android:id="@+id/sort"
    android:title="Sort" />
</menu>

Деятельность

 public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.bar_menu, menu);
   //...
   //...
    MenuItem sortItem = menu.findItem(R.id.sortByBackers);

    sortItem.setOnMenuItemClickListener(item -> {
        View view = findViewById(R.id.default_list);
        popupMenu = new PopupMenu(getApplicationContext(), view);

        popupMenu.inflate(R.menu.sort_or_default);
        popupMenu.setOnMenuItemClickListener(item1 -> {
            switch (item1.getItemId()) {
                case R.id.default_list:
                    kickstarterAdapter.setData(kickstartersList);
                    break;
                case R.id.sort:
                    kickstarterAdapter.sortList();
                    break;
                default:
                    kickstarterAdapter.sortList();
            }
            popupMenu.show();
            return true;
        });
        return true;
    });

`

...