参考《疯狂android讲义》2.10节P168

1、重要接口

Android菜单相关的重要接口共有以下四个:

其中Menu为普通菜单,SubMenu包含子项,ContextMenu当长时间点击某组件时弹出的菜单。它们都有一个或多个menuItem。

2、Menu接口最常用的2个方法

(1)MenuItem add():添加一个新的菜单项

(2)SubMenu add():添加一个新的子菜单。

3、实例

package com.ljh.menudemo;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity { private EditText etHelloWorld;
private final int PLAIN_ITEM = 0x11b;
private final int FONT_10 = 0x111;
private final int FONT_15 = 0x112;
private final int FONT_20 = 0x113;
private final int FONT_25 = 0x114; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etHelloWorld = (EditText) findViewById(R.id.et_hello_world);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu); // 为activity添加普通菜单
menu.add(0, PLAIN_ITEM, 0, "普通菜单"); // 为activity添加子菜单
SubMenu fontSubMenu = menu.addSubMenu("字体大小");
// 为子菜单添加子项
fontSubMenu.add(0, FONT_10, 0, "10号字体");
fontSubMenu.add(0, FONT_15, 0, "15号字体");
fontSubMenu.add(0, FONT_20, 0, "20号字体");
fontSubMenu.add(0, FONT_25, 0, "25号字体"); return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {
// 普通箱单被点击处所进行的操作。
case PLAIN_ITEM:
Toast.makeText(this, "你单击了普通菜单", Toast.LENGTH_LONG).show();
break;
// 为子菜单的子项定义被点击时所进行的操作。
case FONT_10:
etHelloWorld.setTextSize(10);
break;
case FONT_15:
etHelloWorld.setTextSize(15);
break;
case FONT_20:
etHelloWorld.setTextSize(20);
break;
case FONT_25:
etHelloWorld.setTextSize(25);
break; } return true;
} }

当点击菜单按钮时,弹出菜单,有2项:普通菜单及字体大小。点击普通菜单,弹出一个Toast,点击字体大小,弹出一个选择字体大小的选项,并根据选项调整editText中文字的大小。

版权声明:本文为博主原创文章,未经博主允许不得转载。

最新文章

  1. 【About Queue】(待改)
  2. PSR-1:基本的代码风格
  3. wordpress视频教程
  4. IE 11 保护模式害惨了我
  5. hdu City Game
  6. SOME USEFUL MACHINE LEARNING LIBRARIES.
  7. HDU 4607 Park Visit 两次DFS求树直径
  8. Hibernate学习小结
  9. Python 项目实践一(外星人入侵)第二篇
  10. 11个phpstorm 快捷键介绍
  11. Python3调谷歌翻译
  12. loj#2720. 「NOI2018」你的名字
  13. git同步远程已删除的分支和删除本地多余的分支
  14. Python3基础 list + *运算 扩充列表
  15. la3890(半平面交)
  16. ArcGIS 10.2数字化线状要素时自己主动拼接成一条线
  17. ZooKeeper (一)概览
  18. win10下的iis的配置(服务于asp.net)
  19. eclipse/idea批量替换空白行
  20. python字符中加入变量

热门文章

  1. 4个开源的Gmail替代品
  2. 如何创建Hiren的BootCD USB磁盘 -- 制作U盘启动盘
  3. js20---接口3种方式
  4. js--07 编解码,eval
  5. 洛谷P3165 [CQOI2014]排序机械臂
  6. Node.js安装+环境配置【Windows版】
  7. AJAX - 封装AJAX GET 数组join( )方法 键值对取value POST请求参数注意点
  8. ArcGIS 10 影像、栅格数据格式批量转换
  9. amazeui学习笔记一(开始使用3)--兼容性列表compatibility
  10. 利用ServiceWorker实现页面的快速加载和离线访问