Как изменить фоновый цвет всплывающего меню Android

Я генерирую каждую опцию меню из базы данных запросов. Вот мой код.

final PopupMenu popupMenu = new PopupMenu(getBaseContext(), v); SQLiteDatabase db = AdapterDb.getReadableDatabase(); Cursor cursor = db.rawQuery(sql, null); int ctritem = 0; if (cursor.moveToFirst()) { popupMenu.getMenu().add(Menu.NONE, ctritem, Menu.NONE, "ALL ITEMS"); do { ctritem++; popupMenu.getMenu().add(Menu.NONE, ctritem, Menu.NONE, cursor.getString(0)); } while (cursor.moveToNext()); } 

Все в порядке, но проблема заключается в том, как изменить цвет меню опций или цвет фона всплывающего меню (от черного до белого), возможно ли это? благодаря

Добавьте стиль popupMenu в ur AppTheme:

   

manifest.xml:

   .............  

Если вы используете AppCompact-v7, тогда вы можете настроить PopupMenu, как показано ниже:

    

ПРИМЕЧАНИЕ. PopMenu всегда работает с контекстом активности, а не с контекстом приложения.

Добавьте следующие строки в файле стиля xml, я надеюсь, что это поможет для приложения для создания материалов. Style.xml

   

Для получения дополнительной информации см. Эту ссылку http://www.viralandroid.com/2016/01/how-to-change-background-and-text-color-of-android-actionbar-option-menu.html

если вы используете тему AppCompat, то используйте

   

в противном случае

   

сначала определите свой стиль для фона всплывающего меню в файле styles.xml в моем случае я использую это …

   

здесь я хочу изменить фон всплывающего меню в конкретном действии, поэтому примените тему (android: theme = “@ style / AppTheme”) с объявлением активности, и это, безусловно, работает. еще одна важная вещь для создания всплывающего меню с использованием этого кода PopupMenu popup = new PopupMenu (ваша активность, viewObj);

В макете, где вы предоставляете панель инструментов, укажите тему по приложению: popupTheme = “@ style / MyPopupMenu”

   

Пожалуйста, обратитесь к стилю PopupMenu? для более подробного объяснения. Я столкнулся с той же проблемой, обыскал много, но нашел решение в упомянутой ссылке.

PopupMenu создается следующим образом:

 PopupMenu popup = new PopupMenu(context, view); 

PopupMenu берет стиль контекста, который передается, Передача активности, поскольку контекст решил мою проблему.

  @style/popupNew   

Добавьте тему PopupMenu в AppTheme:

   

manifest.xml:

  ...  

В стиле Тема вашего приложения

   

Для текстового оформления

     

И использовать тему приложения в Menifest как:

  

Вы можете использовать пользовательский макет, как это.

 PopupMenu pop = new PopupMenu(MainActivity.this, v); pop.getMenuInflater().inflate(R.menu.main, pop.getMenu()); pop.show(); 

Дизайн макета, как вы хотите .. Надеюсь, это поможет.

  • Android: программно определить, есть ли у устройства аппаратное меню
  • Как программно открыть меню опций?
  • Предоставление имени JMenuItem его ActionListener
  • Метод вызова при нажатии кнопки дома
  • Выпадающее меню / всплывающее меню Android
  • активный пункт меню - главная страница asp.net mvc3
  • Изменение цвета текста элемента меню в навигационном ящике
  • Значок меню параметров Android не будет отображаться
  • Добавить признанное изображение в элементы wp_nav_menu
  • Как иметь выпадающее поле в форме рельсов?
  • Изменение локали в самом приложении
  • Давайте будем гением компьютера.