Cómo cambiar el menú emergente del color de fondo android

Genero cada opción de menú desde la base de datos de consulta. Aquí está mi código.

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()); } 

Todo está bien, pero el problema es cómo cambiar el color del menú de opción o el color de fondo del menú emergente (de negro a blanco), ¿Es posible? Gracias

10 Solutions collect form web for “Cómo cambiar el menú emergente del color de fondo android”

Añadir estilo popupMenu a ur AppTheme:

 <style name="AppTheme" parent="android:Theme.Light"> <item name="android:popupMenuStyle">@style/PopupMenu</item> </style> <style name="PopupMenu" parent="@android:style/Widget.PopupMenu"> <item name="android:popupBackground">@android:color/white</item> </style> 

Manifest.xml:

  <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > ............. </application> 

Si utiliza AppCompact-v7, puede diseñar PopupMenu como se indica a continuación:

  <style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="popupMenuStyle">@style/popupMenuStyle</item> </style> <style name="popupMenuStyle" parent="Widget.AppCompat.PopupMenu"> <item name="android:popupBackground">@android:color/white</item> </style> 

NOTA: PopMenu siempre funciona con el contexto de la actividad, no con el contexto de la aplicación.

Al principio defina su estilo en para el fondo de menú emergente en el archivo styles.xml en mi caso yo uso esto …

 <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <item name="android:popupMenuStyle">@style/PopupMenu</item> </style> <style name="PopupMenu" parent="@android:style/Widget.PopupMenu"> <item name="android:popupBackground">@android:color/holo_green_light</item> </style> 

Aquí quiero cambiar el fondo del menú emergente en una actividad específica, por lo que aplicar el tema (android: theme = "@ style / AppTheme") con la declaración de actividad y seguramente está funcionando. Otra cosa importante para crear el menú emergente con este código PopupMenu popup = new PopupMenu (su actividad, viewObj);

En el diseño en el que está dando la barra de herramientas, especifique el tema por aplicación: popupTheme = "@ style / MyPopupMenu"

 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:minHeight="?attr/actionBarSize" android:background="#2196F3" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" style="@style/DrawerArrowStyle" app:popupTheme="@style/MyPopupMenu"> </android.support.v7.widget.Toolbar> 

Si utiliza el tema de AppCompat, utilice

 <style name="PopupMenu" parent="Widget.AppCompat.PopupMenu"> <item name="android:popupBackground">@android:color/black</item> </style> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="popupMenuStyle">@style/PopupMenu</item> </style> 

de otra manera

 <style name="AppTheme" parent="android:Theme.Light"> <item name="android:popupMenuStyle">@style/PopupMenu</item> </style> <style name="PopupMenu" parent="@android:style/Widget.PopupMenu"> <item name="android:popupBackground">@android:color/white</item> </style> 

Agregue por favor las líneas siguientes en el archivo del estilo xml, espero que esto ayude para la aplicación del diseño material. Style.xml

 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <!-- To change the popup menu and app text color --> <item name="android:textColor">@color/colorPrimary</item> <!-- To change the background of options menu--> <item name="android:itemBackground">@color/skyBlue</item> </style> 

Para más detalles refiera este acoplamiento http://www.viralandroid.com/2016/01/how-to-change-background-and-text-color-of-android-actionbar-option-menu.html

Por favor, consulte cómo el estilo de PopupMenu? Para más explicaciones. Yo estaba enfrentando el mismo problema, buscado mucho, pero encontró la solución en el enlace mencionado.

PopupMenu se crea de la siguiente manera:

 PopupMenu popup = new PopupMenu(context, view); 

PopupMenu toma el estilo del contexto que se pasa, pasando actividad como el contexto resuelto mi problema.

  <item name="android:actionBarPopupTheme">@style/popupNew</item> </style> <style name="popupNew" parent="android:ThemeOverlay.Material.Light"> <item name="android:colorBackground">#ffffff</item> </style> 
  **In Style** **Your Application Theme** <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> <!-- Customize your theme here. --> <item name="android:itemBackground">@color/list_background</item> <item name="android:itemTextAppearance">@style/MyActionBar.MenuTextStyle</item> </style> **For Text Appearence** <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> <item name="background">@color/list_item_title</item> <item name="titleTextStyle">@style/MyActionBarTitle</item> </style> <style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textColor">@color/list_item_title</item> </style> <style name="MyActionBar.MenuTextStyle" parent="style/TextAppearance.AppCompat.Widget.ActionBar.Title"> <item name="android:textColor">@color/list_item_title</item> <item name="android:textStyle">normal</item> <item name="android:textSize">16sp</item> <item name="android:gravity">center</item> </style> **And Use App Theme In Menifest like:** <application android:name="Your Package" android:allowBackup="true" android:icon="@drawable/launcher_icon" android:label="@string/app_name" android:theme="@style/AppTheme" > 

Puedes usar un diseño personalizado como este ..

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

Diseño de diseño como quieras .. espero que esto ayuda ..

  • Cómo abrir la ventana emergente en EditText prensa larga en el estudio de Android
  • Color de fondo del menú de opciones de la barra de herramientas
  • android PopupWindow de un fragmento
  • Problema emergente del menú Hardware con Appcompat
  • Seleccione Texto y muestre el significado como pop-up en MUPDF
  • Cómo trabajar con ventanas emergentes ventana en android webview
  • Quiero establecer el ancho de popup en tiempo de ejecución de acuerdo al tamaño del título en android
  • Cómo animar la ventana emergente de abajo hacia arriba en android
  • Cómo llamar o aparecer fragmento al hacer clic en el botón
  • Pequeño Popup para instrucciones, como los cuadrados
  • Cambiar el fondo del mensaje de error de EditText
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.