2016-05-02 30 views
2

Ich erstelle eine Android-App, die ein Popup-Menü hat und es geöffnet wird, wenn eine Schaltfläche geklickt wird und ich die Textgröße von Menüelementen in diesem Popup-Menü dynamisch erhöhen möchte (basierend auf die Benutzereingabe).Ändern Popup Menü Elemente Schriftgröße dynamisch Android

Kann jemand helfen, wie programmatisch?

In meiner Klasse:

menuButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Creating the instance of PopupMenu 
      PopupMenu popup = new PopupMenu(getActivity(), menuButton); 

      //Inflating the Popup using xml file 
      popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu()); 
      //registering popup with OnMenuItemClickListener 
      popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
       @Override 
       public boolean onMenuItemClick(MenuItem item) { 
         switch (item.getItemId()) { 
          case R.id.one: 
           // Some Stuffs 
          break; 
          case R.id.two: 
           // Some Stuffs 
          break; 
          default: 
          break; 
        } 
        return true; 
       } 
      }); 

Und meine XML-Datei ist ::

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/fav_menu"> 
<group android:id="@+id/first_section" android:checkableBehavior="none" > 
<item 
    android:id="@+id/one" 
    android:title="@string/sort" 
    android:visible="true" 

    /> 
</group> 
<group android:id="@+id/first_two" android:checkableBehavior="none"> 
<item 
    android:id="@+id/two" 
    android:title="@string/sort" 
    android:visible="true" 
    /> 
</group> 
</menu> 
+0

siehe [Link] (http://stackoverflow.com/a/28854648/2715073) – Pankaj

+0

@Clairvoyant Dank für die ur-Link, aber ich möchte die Größe dynamisch auf die Eingabe des Benutzers basierend ändern. (Wenn dynamisch bedeutet, sollte es programmatisch richtig sein?). – Saran

Antwort

-1

Sie können die Textgröße ändern diesen Code durch Zugabe styles.xml und zu verwenden in der Manifestdatei.

<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:popupMenuStyle">@style/PopupMenu</item> 
    <item name="android:textAppearanceLargePopupMenu">@style/myPopupMenuTextAppearanceLarge</item> 
    <item name="android:textAppearanceSmallPopupMenu">@style/myPopupMenuTextAppearanceSmall</item> 

    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
</style> 

<style name="PopupMenu" parent="@android:style/Widget.PopupMenu"> 
    <item name="android:popupBackground">@android:color/white</item> 
    <item name="android:textSize">12sp</item> 
</style> 


<style name="myPopupMenuTextAppearanceSmall" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Small"> 
<item name="android:textSize">15sp</item> 
</style> 
<style name="myPopupMenuTextAppearanceLarge" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Large"> 
<item name="android:textSize">25sp</item> 
</style> 
+0

Das ist nicht die Antwort, denke ich. Kannst du bitte erklären, wie man es innerhalb der Java-Klasse programmatisch ändert? – Saran