<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/menu_items">
<item android:id="@+id/menu_item_night_mode"
android:title="@string/menu_item_night_mode"
android:icon="@android:drawable/ic_menu_preferences"/>
<item android:id="@+id/menu_item_settings"
android:title="@string/menu_item_settings"
android:icon="@android:drawable/ic_menu_preferences"/>
<item android:id="@+id/menu_item_help"
android:title="@string/menu_item_help"
android:icon="@android:drawable/ic_menu_preferences"/>
</group>
</menu>
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// We only want to show it as a menu in landscape, and only for clock/alarm fragment.
mMenu = menu;
//方向水平
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
if (mActionBar.getSelectedNavigationIndex() == ALARM_TAB_INDEX ||
mActionBar.getSelectedNavigationIndex() == CLOCK_TAB_INDEX) {
// Clear the menu so that it doesn't get duplicate items in case onCreateOptionsMenu
// was called multiple times.
menu.clear();
getMenuInflater().inflate(R.menu.desk_clock_menu, menu); MenuItem nightMode = menu.findItem(R.id.menu_item_night_mode);
MenuItem help = menu.findItem(R.id.menu_item_help);
if (mActionBar.getSelectedNavigationIndex() == ALARM_TAB_INDEX) {
nightMode.setVisible(false);
help.setVisible(false);
} else if (mActionBar.getSelectedNavigationIndex() == CLOCK_TAB_INDEX) {
nightMode.setVisible(true);
help.setVisible(false);
} }
// Always return true for landscape, regardless of whether we've inflated the menu, so
// that when we switch tabs this method will get called and we can inflate the menu.
return true;
}
return false;
} @Override
public boolean onPrepareOptionsMenu(Menu menu) {
updateMenu(menu);
return true;
} private void updateMenu(Menu menu) {
// Hide "help" if we don't have a URI for it.
MenuItem help = menu.findItem(R.id.menu_item_help);
if (help != null) {
Utils.prepareHelpMenuItem(this, help);
} // Hide "lights out" for timer.
MenuItem nightMode = menu.findItem(R.id.menu_item_night_mode);
if (mActionBar.getSelectedNavigationIndex() == ALARM_TAB_INDEX) {
nightMode.setVisible(false);
} else if (mActionBar.getSelectedNavigationIndex() == CLOCK_TAB_INDEX) {
nightMode.setVisible(true);
}
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
if (processMenuClick(item)) {
return true;
} return super.onOptionsItemSelected(item);
} private boolean processMenuClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_settings:
startActivity(new Intent(DeskClock.this, SettingsActivity.class));
return true;
case R.id.menu_item_help:
Intent i = item.getIntent();
if (i != null) {
try {
startActivity(i);
} catch (ActivityNotFoundException e) {
// No activity found to match the intent - ignore
}
}
return true;
case R.id.menu_item_night_mode:
startActivity(new Intent(DeskClock.this, ScreensaverActivity.class));
default:
break;
}
return true;
}

Android 菜单动态变化【添加或去除】的更多相关文章

  1. Android LayoutInflater 动态地添加删除View

    我想实现点击一个按钮(或其他的事件)添加或删除View,网上找到了LayoutInflater这个类. 下面是我自己一些经验: android官网上LayoutInflater的API:http:// ...

  2. 通过源码了解ASP.NET MVC 几种Filter的执行过程 在Winform中菜单动态添加“最近使用文件”

    通过源码了解ASP.NET MVC 几种Filter的执行过程   一.前言 之前也阅读过MVC的源码,并了解过各个模块的运行原理和执行过程,但都没有形成文章(所以也忘得特别快),总感觉分析源码是大神 ...

  3. 【Android】6.0 添加Menu菜单组件、Intent启动活动、显式Intent、隐式Intent

    1.0 在helloworld项目基础上创建活动SecondActivity: 2.0 其中main.xml: <?xml version="1.0" encoding=&q ...

  4. 关于React的require添加动态变化的路径

    关于React的require添加动态变化的路径 直接这样写显然是不会有错误的 let path = require('../images/girl.png'); 但是如果你尝试着 var gg = ...

  5. Android中动态更新ListView(转)

    在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中.实现步骤:调用ListView的setOnSc ...

  6. 【转】Android菜单详解——理解android中的Menu--不错

    原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...

  7. Android Studio 动态调试 apk 反编译出的 smali 代码

    在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...

  8. 简单的 Android 菜单

    Android 创建简单的菜单 一:上下文菜单: 1.在 res 下创建菜单项资源文夹 menu app->右击res->new->android resourse director ...

  9. Android菜单

    Android菜单概述 菜单是Activity的一个重要组成部分,它为用户操作提供了快捷的途径.Android提供了一个简单的框架来向程序中添加标准菜单 . 一.创建一个菜单资源 你需要在一个XML ...

随机推荐

  1. JAVA里使用CKEditor和CKFinder的配置

    在JSP里使用CKEditor和CKFinder的配置 CKEditor的编辑器工具栏中有一项“图片域”,该工具可以贴上图片地址来在文本编辑器中加入图片,但是没有图片上传. “预览”中有一大堆鸟语,看 ...

  2. u-boot可ping通PC,PC不可ping通u-boot

    http://blog.csdn.net/ce123_zhouwei/article/details/7339134 开发板运行U-Boot,在终端下使用Ping命令是能Ping通PC机,但PC机Pi ...

  3. salt '*' state.highstate 报错找不到文件,环境如下No Top file or master_tops data matches found.

    salt '*' state.highstate 报错找不到文件,环境如下No Top file or master_tops data matches found. file_roots:    b ...

  4. Windows与Linux下进程间通信技术比较

    一般我们写的程序都是以单个进程的方式来运行的,比较少涉及到多进程.特别是在windows下,因为Windows是按照线程来分配CPU时间片的,线程是最小的调度单位,所以在Windows下更多的用到多线 ...

  5. 从jQuery谈库与框架的设计之优劣

    jQuery是业内知名的javascript框架,它的实现和设计可以说代表了javascript界最高的水平,本文试从四个方面来以jQuery为例总结库与框架设计的原则和优劣判断. 解决问题 首先请看 ...

  6. gpio irq

    /***************************************************************** * gpio irq * * 一直以来都没了解过gpio的irq, ...

  7. 第二百九十五节,python操作redis缓存-字符串类型

    python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...

  8. mysql_query error:Commands out of sync;you can't run this command now

    MYSQL_REST *result没有释放, 用mysql_free_result(result)即可.

  9. 后序线索二叉树中查找结点*p的后继

    在后序线索二叉树中查找结点*p的后继: 1.若结点*p为根,则无后继:2.若结点*p为其双亲的右孩子,则其后继为其双亲:3.若结点*p为其双亲的左孩子,且双亲无右子女,则其后继为其双亲:4.若结点*p ...

  10. MySQl安装全解

    这是第二次安装MySql了.第一次安装花了几个小时,理解安装的每一个页面,这次光寻找安装包就找了几个.因此感觉有必要做一次全面的安装笔记.(有点浪费时间了,可是感觉非常值得)本人系统是window7. ...