Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

Контекстное меню в Android

#java #android #listview #меню #popupmenu


Доброго всем времени суток!

У меня есть ListView, и я хочу к каждому его элементу прикрутить контекстное меню.
Часто видел в приложениях, что контекстное меню для элементов листвью вызывается при
клике на специальную кнопку с тремя квадратами. Не знаю, как называется эта кнопка,
поэтому даже не могу нормально погуглить. Выглядит эта кнопка так: 



Скажите, пожалуйста, что это за кнопка и как наилучшим образом приделать контекстное
меню к каждому элементу listview? Спасибо!
    


Ответы

Ответ 1



Кнопка называется "overflow". Скачать её можно в интернете, на habre был когда-то пост со ссылкой на пак с разноцветными иконками. Меню называется "PopUpMenu". Чтобы его вызвать нужно: 1) Добавить в лэйаут элемента списка саму иконку, найти её в адаптере и далее: @Override public View getView(final int position, View convertView, ViewGroup parent) { //popUp menu holderMain.settings.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { PopupMenu popup = new PopupMenu(context, v); popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.mark_as_read: //действие return true; case R.id.share_link: //действие return true; case R.id.show_comments: //действие return true; default: return false; } } }); MenuInflater inflater = popup.getMenuInflater(); inflater.inflate(R.menu.popup_menu, popup.getMenu()); popup.show(); } }); 2) Ну и ещё нужен popup_menu.xml в папке /res/menu

Комментариев нет:

Отправить комментарий