本文主要详细介绍Android实现选项菜单的子菜单。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
Android选项菜单和子菜单的学习笔记供你参考,详细内容如下
菜单简介:
菜单在桌面应用中应用广泛,几乎所有的桌面应用都有菜单。但是随着手机的发展,手机桌面菜单的使用减少了很多。总的来说,实现了我们把所有的菜单都放到应用里。桌面应用菜单和手机应用菜单的区别在于,桌面菜单一般是可见的,手机是不可见的。通常用户在手机上按下菜单键,就会弹出菜单的相关应用。这里简单来说,通过一个小案例来说明点菜的简单用法。
一般来说,创建菜单有两种方式,一种是用Java代码,另一种是用XML。这一次,我将主要解释用XML创建菜单的情况,因为一般情况下,建议使用XML创建菜单。与Java代码相比,更易于维护,可扩展性更强,耦合性更低。
案例实现,用户输入文本,并可以通过菜单选择字体大小,字体颜色等。
实现步骤:
1.首先,在资源文件夹的菜单下创建菜单xml。
menu_main.xml
?xml版本='1.0 '编码='utf-8 '?
菜单xmlns:Android=' http://schemas . Android . com/apk/RES/Android '
项目
android:id='@ id/menuFont '
Android:title=' font size '
菜单
组
android:id='@ id/groupFont '
Android:checkableBehavior=' none '
项目
android:id='@ id/font_10 '
android:title='10' /
项目
android:id='@ id/font_12 '
android:title='12' /
项目
android:id='@ id/font_14 '
android:title='14' /
项目
android:id='@ id/font_16 '
android:title='16' /
项目
android:id='@ id/font_18 '
android:title='18' /
/组
/菜单
/项目
项目
android:id='@ id/menuColor '
Android:icon=' @ MIP map/IC _ launcher '
Android:title=' font color '
菜单
组
android:id='@ id/groupColor '
Android:checkableBehavior=' none '
项目
android:id='@ id/red '
Android:title=' red'/
项目
android:id='@ id/blue '
Android:title=' blue'/
项目
android:id='@ id/green '
Android:title=' green'/
/组
/菜单
/项目
/菜单
对于上面的xml文件:
Item …/element:定义一个菜单项。
group…/子元素:将“item…/定义的多个菜单项包装到一个菜单组中,“groop…/
元素用于控制整套菜单的行为,它可以指定下列公共属性:
CheckableBehavior:指定这组菜单的选择行为。可以指定为无(可选),
全(多选)和单(单选)三个值
MenuCategory:对菜单进行分类,并指定菜单的优先级。有效值为容器,
系统、二级和替代
Visible:指定组件菜单是否可见。
Enable:指定组菜单是否可用。
通常,''项目./元素用于定义菜单项,而''项./元素还可以包含“”菜单./元素,位
菜单./在'项目内部./element是他的子菜单。
可以为“item…/element”指定以下通用属性:
Android:id:为菜单项指定一个惟一的id。
Android:title:指定菜单项的标题。
Android:icon:指定菜单项的图标。
Android:alphabeticShortcut:为菜单项指定字符快捷键。
Android:numericShortcut:为菜单项指定数字快捷键。
Android:checkable:设置此项是否可选。
Android:checked:设置是否选择该菜单项。
Android:visible:设置菜单项是否可见。
Android:enable:设置该菜单项是否可用。
2.设置与菜单项关联的活动,并在活动中重写onCreateOptionsMenu(菜单菜单),
如果您需要菜单项的监听事件,您需要覆盖它。
onOptionsItemSelected(菜单项)
MainActivity.java
公共类MainActivity扩展AppCompatActivity {
私有EditText mEdt
私人TextView mTv
@覆盖
受保护的void onCreate(Bundle saved instancestate){
super . oncreate(savedInstanceState);
setContentView(r . layout。活动_主);
mEdt=(EditText)findViewById(r . id。mEdt);
mTv=(TextView)findViewById(r . id。min put);
}
/**
* 通过该方法添加菜单项或子菜单项
* @param菜单
* @返回
*/
@覆盖
public boolean onCreateOptionsMenu(菜单菜单){
//方式一添加菜单布局
MenuInflater inflater=new MenuInflater(this);
//将解析到的布局添加到菜单中
充气机。充气(右侧菜单。menu _ main,menu);
//方式二添加菜单布局
//getMenuInflater().inflate(R.menu.menu_main,menu);
返回超级。oncreateoptionsmenu(菜单);
}
/**
* 设置菜单项的点击事件
* @param item
* @返回
*/
@覆盖
选择了公共布尔onoptions项(菜单项){
switch (item.getItemId()) {
病例编号菜单颜色:
Toast.makeText(这个,你选择了修改颜色,吐司. LENGTH_SHORT)。show();
打破;
案例编号菜单:
Toast.makeText(这个,你选择了修改字体,吐司. LENGTH_SHORT)。show();
打破;
}
返回超级棒。onoptionsitems当选(项);
}
}
基本的布局就是这样了,看看整体布局
字体大小下的子菜单:
字体颜色下的子菜单:
3.开始实现功能了,这里我只贴上功能实现的方法:onOptionsItemSelected(菜单项)
@覆盖
选择了公共布尔onoptions项(菜单项){
//先判断点击的是哪个身份证明(识别)
switch (item.getItemId()) {
案例编号。font_10:
medt。settextsize(10 * 2);
打破;
案例编号。font_12:
medt。settextsize(12 * 2);
打破;
案例编号font_14:
medt。settextsize(14 * 2);
打破;
案例编号font_16:
medt。settextsize(16 * 2);
打破;
案例编号font_18:
medt。settextsize(18 * 2);
打破;
蓝色识别号案例:
mEdt.setTextColor(颜色。蓝色);
打破;
红色案例编号:
mEdt.setTextColor(颜色。红色);
打破;
案例编号:绿色:
mEdt.setTextColor(颜色。绿色);
打破;
}
返回超级棒。onoptionsitems当选(项);
}
运行结果:
简单的菜单布局就这些了,对于菜单还有另一种方法,那就是上下文菜单,有关上下文菜单,下次介绍
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。