Java 在android的弹出菜单上更改文本大小

Java 在android的弹出菜单上更改文本大小,java,android,popup,Java,Android,Popup,我有一个可用的弹出菜单。用户将按下一个图像,弹出菜单显示5项。问题是我似乎无法更改弹出窗口文本的大小。 调用弹出窗口的Java如下所示: public void TheCompanyMenu(View v) { PopupMenu mypopupmenu = new PopupMenu(this, v); mypopupmenu.setOnMenuItemClickListener(this); MenuInflater inflater = myp

我有一个可用的弹出菜单。用户将按下一个图像,弹出菜单显示5项。问题是我似乎无法更改弹出窗口文本的大小。 调用弹出窗口的Java如下所示:

     public void TheCompanyMenu(View v) {
     PopupMenu mypopupmenu = new PopupMenu(this, v); 
     mypopupmenu.setOnMenuItemClickListener(this);  
     MenuInflater inflater = mypopupmenu.getMenuInflater(); 
     inflater.inflate(R.menu.popup, mypopupmenu.getMenu());
     mypopupmenu.show();
        }

        @Override 
        public boolean onMenuItemClick(MenuItem arg0) {
        switch (arg0.getItemId()) {  
        case R.id.option1:
           Intent intent1 = new Intent(this, MainActivity.class);
           startActivity(intent1);
        return true;
        case R.id.option2:
            Intent intent2 = new Intent(this, Item2.class);
            startActivity(intent2);
        return true;
        case R.id.option3:
            Intent intent3 = new Intent(this, Item3.class);
            startActivity(intent3);
        return true;    
        case R.id.option4:
            Intent intent4 = new Intent(this, Item4.class);
            startActivity(intent4);    
        return true;
        case R.id.option5:
        Intent intent5 = new Intent(this, Item5.class);
            startActivity(intent5);        
        return true;
        default:
        return super.onContextItemSelected(arg0);
        }
        }
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/option1"
     style="@style/PopupItemStyle"
     android:textSize="12sp"
     android:text="@string/HomeMenu"
     android:title="@string/HomeMenu" />

     <item android:id="@+id/option2"
     style="@style/PopupItemStyle"
     android:textSize="12sp"
     android:text="@string/option2"
     android:title="@string/option2menu" />

     <item android:id="@+id/option3"
     style="@style/PopupItemStyle"
     android:textSize="12sp"
     android:text="@string/option3"
     android:title="@string/option3menu" />

     <item android:id="@+id/option4"
     style="@style/PopupItemStyle"
     android:textSize="12sp"
     android:text="@string/option4"
     android:title="@string/option4menu" />

     <item android:id="@+id/option5"
     style="@style/PopupItemStyle"
     android:textSize="12sp"
     android:text="@string/option5"
     android:title="@string/option5Menu" />
     </menu>
名为popup的菜单xml如下所示:

     public void TheCompanyMenu(View v) {
     PopupMenu mypopupmenu = new PopupMenu(this, v); 
     mypopupmenu.setOnMenuItemClickListener(this);  
     MenuInflater inflater = mypopupmenu.getMenuInflater(); 
     inflater.inflate(R.menu.popup, mypopupmenu.getMenu());
     mypopupmenu.show();
        }

        @Override 
        public boolean onMenuItemClick(MenuItem arg0) {
        switch (arg0.getItemId()) {  
        case R.id.option1:
           Intent intent1 = new Intent(this, MainActivity.class);
           startActivity(intent1);
        return true;
        case R.id.option2:
            Intent intent2 = new Intent(this, Item2.class);
            startActivity(intent2);
        return true;
        case R.id.option3:
            Intent intent3 = new Intent(this, Item3.class);
            startActivity(intent3);
        return true;    
        case R.id.option4:
            Intent intent4 = new Intent(this, Item4.class);
            startActivity(intent4);    
        return true;
        case R.id.option5:
        Intent intent5 = new Intent(this, Item5.class);
            startActivity(intent5);        
        return true;
        default:
        return super.onContextItemSelected(arg0);
        }
        }
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/option1"
     style="@style/PopupItemStyle"
     android:textSize="12sp"
     android:text="@string/HomeMenu"
     android:title="@string/HomeMenu" />

     <item android:id="@+id/option2"
     style="@style/PopupItemStyle"
     android:textSize="12sp"
     android:text="@string/option2"
     android:title="@string/option2menu" />

     <item android:id="@+id/option3"
     style="@style/PopupItemStyle"
     android:textSize="12sp"
     android:text="@string/option3"
     android:title="@string/option3menu" />

     <item android:id="@+id/option4"
     style="@style/PopupItemStyle"
     android:textSize="12sp"
     android:text="@string/option4"
     android:title="@string/option4menu" />

     <item android:id="@+id/option5"
     style="@style/PopupItemStyle"
     android:textSize="12sp"
     android:text="@string/option5"
     android:title="@string/option5Menu" />
     </menu>
我曾尝试将android:textSize更改为dp,但没有效果

样式xml中的代码是:

 <style name="PopupItemStyle"> 
    <item name="android:background">#FFA0A0A0</item>
    <item name="android:gravity">center</item>
    <item name="android:padding">10dp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textSize">12sp</item>
 </style>
由于我对Java相当陌生,我希望保持Java的原样,也就是说,在某种程度上使用popupmenu,但需要更改文本大小。
非常感谢

实际上,我也想这样做。但是,我用另一种方式

private void showPopUp(View v) {
PopupMenu popup = new PopupMenu(DetailActivity.this, v);
LayoutInflater inflater = (LayoutInflater) DetailActivity.this.getSystemService(LAYOUT_INFLATER_SERVICE);
LinearLayout layout = new LinearLayout(this);
layout.setBackgroundColor(Color.GRAY);

//link layout and popwindow
View myView  = inflater.inflate(R.layout.menu_popwindow, null);
PopupWindow myPopupWindow = new PopupWindow(myView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
myPopupWindow.setFocusable(true);//getfocus for editview        
//the follow help dismiss popup     myPopupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.linkme_menu));  
myPopupWindow.setOutsideTouchable(true);
myPopupWindow.setOnDismissListener(new OnDismissListener() { 
    @Override  
    public void onDismiss()  
    {  }   }});myPopupWindow.showAsDropDown(v);

我在actionbar中使用它,您可以自己创建一个新的xmlmenu\u PopWindow。

您尝试过在style.xml中更改大小吗?当我在style.xml中有:12sp时,这不是我正在做的吗?我应该有一些其他的代码吗?因为有两个大小选项,popupmenu.xml和styles.xml,请检查这两个选项中的编辑。如果没有,请先尝试仅在popupmenu.xml中,然后尝试仅在styles.xml中。代码是你自己写的还是你从某处引用的?我已经按照你的建议做了,但是大小还是一样的,顺便说一下,它太大了。我从其他地方获取了代码,只是在菜单项上做了些修改。我从哪里得到它,根本不需要改变文本大小。我认为这并不是设置文本大小那么简单。看看这个谢谢你。此代码是否必须在actionbar中使用?对于此应用程序,操作栏已被禁用。当然不是!你应该在其他情况下使用它。你可以试试。谢谢。我正在尝试这个。你的DetailActivity是做什么的?嗨,Paperhs,我有你的代码,但是点击按钮什么也没发生。我没有空间把代码放在这里,但它的开头是:public void TheCompanyMenuView v{PopupMenu mypopupmenu=new PopupMenuthis,v;mypopupmenu.setOnMenuItemClickListenerthis;LayoutFlatter充气器=LayoutFlatterThis.getSystemServiceLAYOUT\u充气器\u服务;LinearLayout布局=new LinearLayoutthis;layout.setBackgroundColorColor.GRAY;Detail活动是当前活动。视图v是按钮视图,是否创建xm我把菜单命名为popwindow,很抱歉它帮不了你。