как я могу отображать элементы, когда мы нажимаем imageView - PullRequest
0 голосов
/ 02 апреля 2019

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

final View imageButton = findViewById(R.id.imageButton);
 imageButton.setOnClickListener(new OnClickListener(){
 @Override
 public void onClick(View view) {
            // display a list of suggestions !
        }
    });

Я буду благодарен, если найдется кто-нибудь, кто поможет мне решить эту проблему.

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

Сначала вы создаете свое меню элементов, которые вы хотите показать следующим образом

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

<item
android:id="@+id/first"
android:title="First Menu Item"/>

<item
android:id="@+id/second"
android:title="Second Menu Item"/>

<item
android:id="@+id/third"
android:title="Third Menu Item"/>

</menu>

Затем в своей деятельности вы создаете PopupMenu

PopupMenu pm = new PopupMenu(MainActivity.this, pBtn);
    pm.getMenuInflater().inflate(R.menu.popup_menu, pm.getMenu());
    pm.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            switch (item.getItemId()){
                case R.id.first:
                    Toast.makeText(MainActivity.this, "Clicked First Menu Item", Toast.LENGTH_SHORT).show();
                    return true;

                case R.id.second:
                    Toast.makeText(MainActivity.this, "Clicked Second Menu Item", Toast.LENGTH_SHORT).show();
                    return true;

                case R.id.third:
                    Toast.makeText(MainActivity.this, "Clicked Third Menu Item", Toast.LENGTH_SHORT).show();
                    return true;
            }

            return true;
        }
    });
    pm.show();

Наконец вы называете это popup menu в вашем прослушивателе кликов

РЕДАКТИРОВАТЬ:

Создайте ArrayList of String, например

ArrayList<String> popupItems = new ArrayList<String>();

Заполните ваш массив данных вашими данными

Затем вы инициализируетеваше всплывающее меню с этим списком массивов

popupMenu = new PopupMenu(this, imageButton); 

Проход по вашему массиву, добавление значений в меню всплывающего меню

for (int i =0; i < popupItems.size(); i++)
    popupMenu.getMenu().add(Menu.NONE, 1, Menu.NONE, popupItems.get(i)) 
0 голосов
/ 02 апреля 2019

Вы можете отобразить элементы в диалоговом окне, когда вы нажимаете на изображение, чтобы отобразить диалоговое окно

...