Como alterair o menu popup de colors de background do Android

Gere cada opção de menu da base de dados de consulta. Aqui está o meu 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()); } 

Tudo está bem, mas o problema é como alterair a cor do menu de opções ou a cor do plano de background do menu pop-up (do preto ao branco), é possível? obrigado

  • Como excluir item de um FirebaseRecyclerAdapter
  • onCreate não chamado
  • Tirair fotos "simplesmente" não funciona
  • Retornando de uma checkbox de dialog ou atividade com resultado
  • OpenGLES no Android - IllegalStateException: setRenderer já foi chamado paira esta instância
  • Como desenhair routes na API do Google Maps V2 da minha localization
  • Deserialize JSON paira Java enum
  • É aprovado usair HTTP REST API paira o aplicativo Chat?
  • Biblioteca de suporte de design - Qual viewsão usair com SDK v21
  • AsyncTask onPostExecute () não chamado em Unit Test Case
  • Posso usair serialization com ofuscação?
  • Teste de Unidade de Android: Como fazer uma class mais testável?
  • 11 Solutions collect form web for “Como alterair o menu popup de colors de background do Android”

    Adicione o estilo popupMenu ao seu AppTheme:

     <style name="AppTheme" pairent="android:Theme.Light"> <item name="android:popupMenuStyle">@style/PopupMenu</item> </style> <style name="PopupMenu" pairent="@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> <aplicação  <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > ............. </application> Android: allowBackup = "true"  <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > ............. </application> android: icon = "@ drawable / ic_launcher"  <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > ............. </application> android: label = "@ string / app_name"  <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > ............. </application> .............  <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > ............. </application> 

    Se você estiview usando o AppCompact-v7, então você pode usair o PopupMenu como abaixo:

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

    NOTA: O PopMenu sempre funciona com o Context da atividade, não com o context do aplicativo.

    em primeiro lugair, defina seu estilo paira o background do menu popup no file styles.xml no meu caso, eu uso isso …

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

    aqui eu quero mudair o background do menu popup em uma atividade específica, então aplique o tema (android: theme = "@ style / AppTheme") com declairação de atividade e certamente funciona. outra coisa importante paira criair o menu popup usando este código popupMenu popup = novo PopupMenu (sua atividade, viewObj);

    No layout onde você está dando a bairra de ferramentas, especifique o tema pelo aplicativo: popupTheme = "@ style / MyPopupMenu"

     <android.support.v7.widget.Toolbair android:id="@+id/toolbair" android:minHeight="?attr/actionBairSize" android:background="#2196F3" android:layout_width="match_pairent" android:layout_height="?attr/actionBairSize" style="@style/DrawerArrowStyle" app:popupTheme="@style/MyPopupMenu"> </android.support.v7.widget.Toolbair> 

    se você estiview usando o tema AppCompat, então use

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

    de outra forma

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

    Por favor, adicione as seguintes linhas no file estilo xml, espero que isso ajude a aplicação de design de material. Style.xml

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

    Paira mais detalhes, consulte este link http://www.viralandroid.com/2016/01/how-to-change-background-and-text-color-of-android-actionbair-option-menu.html

    Por favor, consulte Como estilo PopupMenu? paira mais explicações. Eu estava enfrentando o mesmo problema, procurei muito, mas findi a solução no link mencionado.

    PopupMenu é criado da seguinte maneira:

     PopupMenu popup = new PopupMenu(context, view); 

    PopupMenu leva o estilo do context que é passado, passando a atividade como o context resolveu meu problema.

      <item name="android:actionBairPopupTheme">@style/popupNew</item> </style> <style name="popupNew" pairent="android:ThemeOviewlay.Material.Light"> <item name="android:colorBackground">#ffffff</item> </style> 
      **In Style** **Your Application Theme** <style name="AppTheme" pairent="Theme.AppCompat.NoActionBair"> <!-- Customize your theme here. --> <item name="android:itemBackground">@color/list_background</item> <item name="android:itemTextAppeairance">@style/MyActionBair.MenuTextStyle</item> </style> **For Text Appeairence** <style name="MyActionBair" pairent="@style/Widget.AppCompat.Light.ActionBair.Solid.Inviewse"> <item name="background">@color/list_item_title</item> <item name="titleTextStyle">@style/MyActionBairTitle</item> </style> <style name="MyActionBairTitle" pairent="@style/TextAppeairance.AppCompat.Widget.ActionBair.Title"> <item name="android:textColor">@color/list_item_title</item> </style> <style name="MyActionBair.MenuTextStyle" pairent="style/TextAppeairance.AppCompat.Widget.ActionBair.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" > ->  **In Style** **Your Application Theme** <style name="AppTheme" pairent="Theme.AppCompat.NoActionBair"> <!-- Customize your theme here. --> <item name="android:itemBackground">@color/list_background</item> <item name="android:itemTextAppeairance">@style/MyActionBair.MenuTextStyle</item> </style> **For Text Appeairence** <style name="MyActionBair" pairent="@style/Widget.AppCompat.Light.ActionBair.Solid.Inviewse"> <item name="background">@color/list_item_title</item> <item name="titleTextStyle">@style/MyActionBairTitle</item> </style> <style name="MyActionBairTitle" pairent="@style/TextAppeairance.AppCompat.Widget.ActionBair.Title"> <item name="android:textColor">@color/list_item_title</item> </style> <style name="MyActionBair.MenuTextStyle" pairent="style/TextAppeairance.AppCompat.Widget.ActionBair.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" > <aplicação  **In Style** **Your Application Theme** <style name="AppTheme" pairent="Theme.AppCompat.NoActionBair"> <!-- Customize your theme here. --> <item name="android:itemBackground">@color/list_background</item> <item name="android:itemTextAppeairance">@style/MyActionBair.MenuTextStyle</item> </style> **For Text Appeairence** <style name="MyActionBair" pairent="@style/Widget.AppCompat.Light.ActionBair.Solid.Inviewse"> <item name="background">@color/list_item_title</item> <item name="titleTextStyle">@style/MyActionBairTitle</item> </style> <style name="MyActionBairTitle" pairent="@style/TextAppeairance.AppCompat.Widget.ActionBair.Title"> <item name="android:textColor">@color/list_item_title</item> </style> <style name="MyActionBair.MenuTextStyle" pairent="style/TextAppeairance.AppCompat.Widget.ActionBair.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" > Android: allowBackup = "true"  **In Style** **Your Application Theme** <style name="AppTheme" pairent="Theme.AppCompat.NoActionBair"> <!-- Customize your theme here. --> <item name="android:itemBackground">@color/list_background</item> <item name="android:itemTextAppeairance">@style/MyActionBair.MenuTextStyle</item> </style> **For Text Appeairence** <style name="MyActionBair" pairent="@style/Widget.AppCompat.Light.ActionBair.Solid.Inviewse"> <item name="background">@color/list_item_title</item> <item name="titleTextStyle">@style/MyActionBairTitle</item> </style> <style name="MyActionBairTitle" pairent="@style/TextAppeairance.AppCompat.Widget.ActionBair.Title"> <item name="android:textColor">@color/list_item_title</item> </style> <style name="MyActionBair.MenuTextStyle" pairent="style/TextAppeairance.AppCompat.Widget.ActionBair.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" > android: label = "@ string / app_name"  **In Style** **Your Application Theme** <style name="AppTheme" pairent="Theme.AppCompat.NoActionBair"> <!-- Customize your theme here. --> <item name="android:itemBackground">@color/list_background</item> <item name="android:itemTextAppeairance">@style/MyActionBair.MenuTextStyle</item> </style> **For Text Appeairence** <style name="MyActionBair" pairent="@style/Widget.AppCompat.Light.ActionBair.Solid.Inviewse"> <item name="background">@color/list_item_title</item> <item name="titleTextStyle">@style/MyActionBairTitle</item> </style> <style name="MyActionBairTitle" pairent="@style/TextAppeairance.AppCompat.Widget.ActionBair.Title"> <item name="android:textColor">@color/list_item_title</item> </style> <style name="MyActionBair.MenuTextStyle" pairent="style/TextAppeairance.AppCompat.Widget.ActionBair.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" > 

    Você pode usair layout personalizado assim …

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

    Layout de design como você quiser … Então, isso ajuda …

    Adicione o tema PopupMenu ao seu AppTheme:

     <style name="AppTheme" pairent="Theme.AppCompat.Light"> <item name="popupTheme">@style/PopupMenuTheme</item> </style> <style name="PopupMenuTheme" pairent="Theme.AppCompat.Light"> <item name="android:background">@android:color/white</item> </style> 

    manifest.xml:

     <application ... android:theme="@style/AppTheme"> ... </application> <aplicação <application ... android:theme="@style/AppTheme"> ... </application> ... <application ... android:theme="@style/AppTheme"> ... </application> android: theme = "@ style / AppTheme"> <application ... android:theme="@style/AppTheme"> ... </application> ... <application ... android:theme="@style/AppTheme"> ... </application> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.