Android菜单(SubMenu)用法小结
来源:互联网 发布:大鱼海棠 楸 知乎 编辑:程序博客网 时间:2024/06/06 02:33
记得上一次暑假做项目的时候用到了Menu,记得很清楚有一个地方需要用到子菜单,所以用上了SubMenu这玩意
现在的安卓手机在屏幕变大了以及系统升级之后更多的取消了原有的菜单键(部分老的安卓机子还有默认的菜单键),还有的现在是应用到了物理菜单键。但是有的机子是没有的哇,当时做项目的时候考虑到这种情况就决定同意使用SubMenu,当然后面也学着用上下文菜单和ActionBar/ActionMode
说明一下:在看Android 源码的时候可以看出来
Menu是一个父接口,SubMenu(子菜单)和ContextMenu(上下文菜单)是它的子接口!
SubMenu子菜单,要依附在一个菜单中间的
所以在使用SubMenu的时候需要有一个前提条件:你需要创建一个Option Menu
换句话说你需要冲下Activity 的onCreateOptionsMenu(Menu menu)方法,然后在这个方法里面添加SubMenu 嘿嘿,是不是听起来很简单。写了个小程序体验下。
首先是一个很简单的activity_main.xml
<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TableRow> <TextView android:text="这里这里这里" android:textSize="25dp" android:id="@+id/textView" android:layout_column="24" /> </TableRow></TableLayout>
就一个文本而已…
接着才是重点: MainActivity
package com.example.administrator.androidclasstest02;import android.content.Intent;import android.graphics.Color;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.Menu;import android.view.MenuItem;import android.view.SubMenu;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;/** * Created by Administrator on 2017/3/14 0014. */public class MenuActivity extends AppCompatActivity { final int FONT_10 = 10; final int FONT_12 = 12; final int FONT_14 = 14; final int FONT_16 = 16; final int FONT_18 = 18; final int FONT_YELLOW = 0x123; final int FONT_BLACK = 0x124; final int FONT_RED = 0x125; private TextView textView; final int PLANT_ITEM = 0x11b; /** * * @param saveImstanceState */ @Override protected void onCreate(final Bundle saveImstanceState){ super.onCreate(saveImstanceState); setContentView(R.layout.second_activity); textView = (TextView) findViewById(R.id.textView); } @Override public boolean onCreateOptionsMenu(final Menu menu) {// 设置字体,利用SubMenu 创建子菜单添加到menu中去 SubMenu fontMenu = menu.addSubMenu("字体大小"); fontMenu.add(0, FONT_10, 0, "10字体"); fontMenu.add(0, FONT_12, 0, "12字体"); fontMenu.add(0, FONT_14, 0, "14字体"); fontMenu.add(0, FONT_16, 0, "16字体"); fontMenu.add(0, FONT_18, 0, "18字体");// 设置普通菜单 menu.add(0, PLANT_ITEM, 0, "普通菜单栏");// 设置文字颜色的子菜单 SubMenu colorMenu = menu.addSubMenu("字体颜色"); colorMenu.add(0, FONT_BLACK, 0, "黑色字体"); colorMenu.add(0, FONT_YELLOW, 0, "黄色字体"); colorMenu.add(0, FONT_RED, 0, "红色字体"); colorMenu.setIcon(R.drawable.cat); colorMenu.setHeaderTitle("字体颜色选择"); return super.onCreateOptionsMenu(menu); } //重写onOptionsItemSelected方法,选择对应的相应 @Override public boolean onOptionsItemSelected(final MenuItem menu) { switch (menu.getItemId()) { case FONT_10: textView.setTextSize(10 * 2); break; case FONT_12: textView.setTextSize(12 * 2); break; case FONT_14: textView.setTextSize(14 * 2); break; case FONT_16: textView.setTextSize(16 * 2); break; case FONT_18: textView.setTextSize(18 * 2); break; case FONT_BLACK: textView.setTextColor(Color.BLACK); break; case FONT_RED: textView.setTextColor(Color.RED); break; case FONT_YELLOW: textView.setTextColor(Color.YELLOW); break; case PLANT_ITEM: Toast.makeText(this, "Toast提示", Toast.LENGTH_SHORT).show(); break; } return true; }}
上文当中的Color.REN等是在color.xml中定义的
在onCreateOptionsMenu(final Menu menu)这个方法中,创建SubMenu对象添加到menu中去,Android就会自动为你添加一个子菜单,再在SubMenu对象中添加Item,就会在子菜单中添加选项,注意是子菜单中的选项。
接下来来看效果咯 请忽略掉那两个迷之Button。。。。。。
0 0
- Android菜单(SubMenu)用法小结
- Android组件 子菜单(SubMenu)
- Android-SubMenu子菜单
- 11. android 选项菜单(此处为icon menu)--Menu,SubMenu,MenuItem的用法
- Android——菜单之SubMenu(子菜单)
- Android菜单详解——子菜单(SubMenu)
- 第45章、子菜单SubMenu(从零开始学Android)
- Android菜单详解(三)——SubMenu和IconMenu
- Android菜单详解(三)——SubMenu和IconMenu
- Android菜单详解(三)——SubMenu和IconMenu
- Android中的子菜单(SubMenu)使用案例
- Android菜单详解(三)——SubMenu和IconMenu
- 菜单【SubMenu】
- 从头学Android之SubMenu子菜单
- Android移动开发-选项菜单和子菜单(SubMenu)的实现
- ContextMenu文本菜单(右键菜单)、SubMenu子菜单
- Android之菜单选项子菜单submenu(二)
- android应用开发详解(四)----------各种菜单(optionmenu、contextmenu、submenu)和Toast的使用
- github+jekyll 搭建博客最全教程(一次性完成)
- 利用Gephi生成可视化拓扑图
- java设计模式-单例模式
- 二叉树的先、中、后序遍历及层次遍历的迭代版算法
- 排序算法--选择排序法
- Android菜单(SubMenu)用法小结
- 《ACM程序设计》书中题目 L
- 广度/宽度优先搜索(BFS)
- 负载均衡算法
- 关于C#中抽象类的一些感想
- JavaScript跨域总结与解决办法
- 解决问题的程序员
- 排序算法2--简单选择排序、堆排序
- Android TV开发 常用的按键的Key