菜单创建的两种方式:
公司主营业务:成都网站设计、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出衡东免费做网站回馈大家。
1、在xml文件中创建菜单:
具体代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.xunfang.menucreate.MainActivity" >
//此处创建子菜单
<item
android:id="@+id/sms"
android:icon="@drawable/sms"
android:orderInCategory="100"
android:showAsAction="never"
android:title="短信">
<menu>
<item
android:id="@+id/smsfamily"
android:icon="@drawable/smsalt"
android:orderInCategory="100"
android:showAsAction="never"
android:title="家庭短信"/>
<item
android:id="@+id/smscompany"
android:icon="@drawable/twitteralt"
android:orderInCategory="100"
android:showAsAction="never"
android:title="公司短信"/>
</menu>
</item>
<item
android:id="@+id/camera"
android:icon="@drawable/camera"
android:orderInCategory="100"
android:showAsAction="never"
android:title="照相机"/>
</menu>
这种情况下创建菜单时,需要用到item标签,创建一个菜单选项,就必须用到一个item
当需要创建子菜单的时候:如有背景色的部分那样,在主菜单下创建子菜单,需要在item中嵌套一个menu标签,然后在menu标签中写子菜单,每一个子菜单还是要写在item标签中。
2、动态创建菜单:
public boolean onCreateOptionsMenu(Menu menu) {
//给文件创建子菜单
SubMenu sub = menu.addSubMenu(Menu.FIRST, 1, 1, "文件") ;
sub.add(Menu.FIRST+3, 10, 1, "隐藏组3") ;
sub.add(Menu.FIRST+3, 11, 2, "显示组3") ;
menu.add(Menu.FIRST,2,2,"编辑") ;
sub.setIcon(R.drawable.browser) ;
sub.setHeaderIcon(R.drawable.browser) ;
MenuItem refactor = menu.add(Menu.FIRST + 1,3,10,"重构") ;
refactor.setIcon(R.drawable.clock) ;
MenuItem source = menu.add(Menu.FIRST + 1,4,6,"源码") ;
source.setIcon(R.drawable.sms) ;
menu.add(Menu.FIRST + 2 ,5,5,"导航") ;
menu.add(Menu.FIRST + 2,6,3,"搜索") ;
return true;
}
上面add()方法中的四个参数分别为:第一个参数表示处于同一个组中
第二个参数表示一个唯一的id
第三个参数是一个id,表示在菜单中菜单项显示的顺序
第四个参数表示显示的文本
注:给菜单项添加图标:
private void setIconVisible(Menu menu) {
try {
Class clazz = Class
.forName("com.android.internal.view.menu.MenuBuilder");
Method m = clazz.getDeclaredMethod("setOptionalIconsVisible",
boolean.class);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
e.printStackTrace();
}
}
有背景的部分为代码关键部分,上面这个方法是我自己添加的一个方法,在添加图标的时候只需要调用这个方法就行了。
分享名称:android菜单创建的两种方式和菜单项添加图标
文章源于:https://www.cdcxhl.com/article48/jjdchp.html
成都网站建设公司_创新互联,为您提供微信小程序、服务器托管、移动网站建设、软件开发、电子商务、网站制作
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联