MainActivity如下:

package cc.testsimpleactionbar1;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;
/**
* Demo描述:
* 使用ActionBar显示选项菜单
*
* 背景资料:
* Android手机不强制要求设备必须有Menu键,这样导致的问题是用户无法打开
* 选项菜单.但此时即可以将选项菜单设置成Action Item.
* 即从Android 3.0 开始为MenuItem新增如下方法:
* setShowAsAction(int actionEnum),该方法用于设置是否将该菜单栏
* 显示在ActionBar上,作为ActionItem
* 参数值如下:
* SHOW_AS_ACTION_ALWAYS:总是将该MenuItem显示在ActionBar上
* SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW:将该Action View折叠成普通菜单项
* SHOW_AS_ACTION_IF_ROOM:当ActionBar位置有足够空间时才显示该MenuItem
* SHOW_AS_ACTION_NEVER:不将该MenuItem显示在ActionBar上
* SHOW_AS_ACTION_WITH_TEXT:将该MenuItem显示在ActionBar上,且显示该菜单项的文本
*
* 当然我们最好是在xml文件中来定义菜单.
* 所以在menu下的item属性中指定showAsAction属性即可
* 该属性的值和上面提到的参数值的表达形式很类似,作用是相同的
*
*
* 参考资料:
* 1 Android疯狂讲义(第二版)
* 2 http://blog.csdn.net/think_soft/article/details/7378824
* Thank you very much
*
* 测试说明:
* 当手机处于横屏的时候,在因为ActionBar的空间有限
* 所以只会显示每个Item的图标,不会显示其title
* 在横屏的时候既显示图标也显示title
*
*/
public class MainActivity extends Activity {
private TextView mTipTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
} private void init(){
mTipTextView=(TextView) findViewById(R.id.tipTextView);
} //生成对应的菜单,并添加到Menu中
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.action_menu, menu);
return true;
} //菜单项被选中时执行该方法
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
if (menuItem.isCheckable()) {
menuItem.setChecked(true);
}
switch (menuItem.getItemId()) {
case R.id.font10:
mTipTextView.setTextSize(10 * 2);
break;
case R.id.font12:
mTipTextView.setTextSize(12 * 2);
break;
case R.id.font14:
mTipTextView.setTextSize(14 * 2);
break;
case R.id.font16:
mTipTextView.setTextSize(16 * 2);
break;
case R.id.font18:
mTipTextView.setTextSize(18 * 2);
break;
case R.id.redFont:
mTipTextView.setTextColor(Color.RED);
break;
case R.id.greenFont:
mTipTextView.setTextColor(Color.GREEN);
break;
case R.id.blueFont:
mTipTextView.setTextColor(Color.BLUE);
break;
case R.id.plain_item:
Toast toast = Toast.makeText(MainActivity.this, "单击了普通菜单项",Toast.LENGTH_SHORT);
toast.show();
break; default:
break;
}
return true;
} }

main.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" > <TextView
android:id="@+id/tipTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="可通过菜单修改文字的大小和颜色"
android:textSize="16sp"
android:gravity="center"
/> </RelativeLayout>

action_menu.xml如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:title="文字大小"
android:icon="@drawable/font"
android:showAsAction="always|withText">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/font10"
android:title="10"
/>
<item
android:id="@+id/font12"
android:title="12"
/>
<item
android:id="@+id/font14"
android:title="14"
/>
<item
android:id="@+id/font16"
android:title="16"
/>
<item
android:id="@+id/font18"
android:title="18"
/>
</group>
</menu>
</item> <item
android:id="@+id/plain_item"
android:icon="@drawable/ic_launcher"
android:title="普通菜单项"
android:showAsAction="always|withText"
/> <item
android:title="设置颜色"
android:icon="@drawable/color"
android:showAsAction="always|withText">
<menu>
<group>
<item
android:id="@+id/redFont"
android:title="红色"
/>
<item
android:id="@+id/greenFont"
android:title="绿色"
/>
<item
android:id="@+id/blueFont"
android:title="蓝色"
/>
</group>
</menu>
</item> </menu>

Android ActionBar详解(二)--->使用ActionBar显示选项菜单的更多相关文章

  1. Android ActionBar详解(二):ActionBar实现Tabs标签以及下拉导航

    一.添加标签 Tabs   在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重写onTabSelected.onTabUnselected ...

  2. Android ActionBar详解(一):ActionBar概述及其创建

    在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个重要的内容,Action Bar主要是用于代替传统的标题栏,对于Android平板设备来说屏幕更大它的标题使 ...

  3. Android ActionBar详解(三):ActionBar实现切换Tabs标签

    实现切换Tabs标签; Activity代码: public class ActionBarTabs extends Activity { @Override protected void onCre ...

  4. Android Fragment详解(二):Fragment创建及其生命周期

    Fragments的生命周期 每一个fragments 都有自己的一套生命周期回调方法和处理自己的用户输入事件. 对应生命周期可参考下图: 创建片元(Creating a Fragment) To c ...

  5. (转)android Fragments详解二:创建Fragment

    创建Fragment 要创建fragment,必须从Fragment或Fragment的派生类派生出一个类.Fragment的代码写起来有些像activity.它具有跟activity一样的回调方法, ...

  6. Android Loader详解二:使用加载器

    一个使用装载器的应用会典型的包含如下组件: 一个Activity或Fragment. 一个LoaderManager的实例. 一个加载被ContentProvider所支持的数据的CursorLoad ...

  7. Android ActionBar详解

    Android ActionBar详解 分类: Android2014-04-30 15:23 1094人阅读 评论(0) 收藏 举报 androidActionBar   目录(?)[+]   第4 ...

  8. Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

    [Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.And ...

  9. Android View 的绘制流程之 Layout 和 Draw 过程详解 (二)

    View 的绘制系列文章: Android View 的绘制流程之 Measure 过程详解 (一) Android View 绘制流程之 DecorView 与 ViewRootImpl 在上一篇  ...

随机推荐

  1. i = i++ 在java字节码层面的分析

    有这么一段代码: package zl.test; public class PcodeTest { /** * @param args */ public static void main(Stri ...

  2. HTTP头信息(转)--1

    转自:http://www.cnblogs.com/9988/archive/2012/03/21/2409086.html 我用抓包软件抓了http的包,发现accept大多数有两种情况. 第一种: ...

  3. HighlightingSystem插件使用(边缘发光)

    插件链接: http://pan.baidu.com/s/1dFwkaTr 密码: nw2c 导入Unity里面可能会报错,不过没关系,直接注释掉就可以了,我用的是Unity5.1的版本 可以看到如下 ...

  4. C语言处理CSV文件的方法(一)

    什么是CSV文件 CSV是 Comma-separated values (逗号分隔值)的首字母缩写,它通常是以逗号且不仅限于逗号分隔各个值,我们都叫他CSV. 看下面的例子: China, Shan ...

  5. day8_python学习笔记_chapter11_函数

    1. 返回对象的数目   python实际返回的对象 0 -> None ; 1 -> object ; >1 -> tuple 2. 内部/内嵌函数:如果内部函数的定义包含了 ...

  6. php的系统常量

    认识一下系统常量 系统常量是PHP已经定义好的常量,我们可以直接拿来使用,常见的系统常量有: (1)__FILE__ :php程序文件名.它可以帮助我们获取当前文件在服务器的物理位置. (2)__LI ...

  7. ParseChat应用源码ios版

    ParseChat是一个完全原生的iPhone应用程序,用于创建实时的.基于文本的Parse聊天室.功能:支持多台设备之间的实时聊天,可动态添加新的聊天室,支持基本配置,可发送和接收音效以及任意大小的 ...

  8. 运用JavaScript构建你的第一个Metro式应用程序(onWindows 8)(三)

    原文 http://blog.csdn.net/zhangxin09/article/details/6793593 这是<运用 JavaScript构建你的第一个Metro式应用程序>系 ...

  9. chrome 下的 proxy 插件安装

    Install “Proxy SwitchyOmega” extensions for chrome.

  10. #include <thread>

    1 detach 脱离当前主线程,自由执行,乱序; 2 join() 等待模式,执行完再执行下一个 3 std::this_thread::get_id() 获取当前线程编号 4 std::threa ...