Android - значки ярлыков в пользовательском адаптере списка (музыка Google Play)

Я пытаюсь воспроизвести представление списка в Google Play Music, например

картинка просмотра списка

но я не уверен, как лучше всего загрузить такие параметры, как «Начать мгновенный микс» или «Перейти к исполнителю» при нажатии кнопки, которая выглядит как переполнение действия в представлении списка. Вы относитесь к ним как к элементам меню? Если да, то какой метод обратного вызова вы бы использовали?

Причина, по которой я хочу использовать ярлык в списке, заключается в том, что я хочу, чтобы пользователь мог видеть связанные альбомы, в которых есть песня, которые не могут поместиться в крошечном представлении списка, потому что всего может быть 8 изображений. Они также связаны с песнями в представлении списка, поэтому я полагаю, что это был бы мой лучший выбор дизайна.


person John61590    schedule 06.04.2014    source источник


Ответы (2)


Думаю, я понял это. Я воспроизвел его, создав ImageView с onClickListener, который загружает ListPopupWindow в ListAdapter. ImageView src, который я использовал, - это просто стандартное переполнение меню.

person John61590    schedule 07.04.2014

Это можно создать с помощью PopupMenu

PopupMenu popup = new PopupMenu(context, viewToAttach);

и раздуйте XML-файл меню на

popup.inflate(R.menu.your_menu_options_file);

поместить файл опций меню в

меню/ваш_меню_файл_параметров.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/action_item_mix"
        android:title="Start instant mix" />
</menu>

Вы получаете прослушиватель кликов

popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        switch (item.getItemId()) {
                            case R.id.action_item_mix:
                                //do the action here
                                break;
                        }
                        return false;
                    }
                });
                popup.show();
person rafa    schedule 26.06.2017