Доброго всем времени суток!
У меня есть ListView, и я хочу к каждому его элементу прикрутить контекстное меню. Часто видел в приложениях, что контекстное меню для элементов листвью вызывается при клике на специальную кнопку с тремя квадратами. Не знаю, как называется эта кнопка, поэтому даже не могу нормально погуглить. Выглядит эта кнопка так:
Скажите, пожалуйста, что это за кнопка и как наилучшим образом приделать контекстное меню к каждому элементу listview? Спасибо!
Кнопка называется "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
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/mark_as_read"
android:orderInCategory="10"
android:title="@string/mark_as_read"/>
<item
android:id="@+id/share_link"
android:orderInCategory="50"
android:title="@string/share_link"/>
<item
android:id="@+id/show_comments"
android:orderInCategory="100"
android:title="@string/show_comments"/>
</menu>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как сделать в окне такое же меню, как и в preview с l&f и pack/exit?
Задача: В массиве все элементы различныПоменяйте местами минимальный и максимальный элемент этого массива