<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. linux 内核参数调整优化网络

    Linux系统内核设置优化tcp网络,# vi /etc/sysctl.conf,添加以下内容 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待 ...

  2. Storm学习笔记——高级篇

    1. Storm程序的并发机制 1.1 概念 Workers (JVMs): 在一个物理节点上可以运行一个或多个独立的JVM 进程.一个Topology可以包含一个或多个worker(并行的跑在不同的 ...

  3. Web下的整体测试 --性能测试及优化思路

    随着Internet的日益普及,现在基于B/S结构的大型应用越来越多,可如何对这些应用进行测试成为日益迫切的问题.有许多测试人员来信问我B/S的测试如何做,由于工作较繁忙,对大家提出的问题也是头痛医头 ...

  4. 关于Cocos2d-x中addchild和removeChild方法的参数的解析

    一.addchild virtual void addchild( Node * child , int localZOrder , int tag )添加一个子节点到容器中,有Z轴顺序和一个标记. ...

  5. Incentivizing exploration in reinforcement learning with deep predictive models

    Stadie, Bradly C., Sergey Levine, and Pieter Abbeel. "Incentivizing exploration in reinforcemen ...

  6. C 字符串操作函数

    针对C风格的字符串(char p[n];): 长度(strlen).追加(strcat, strncat).比较(strcmp, strncmp).查找(strchr, strstr)等. --带n的 ...

  7. e678. 尖锐化图像

    This example demonstrates a 3x3 kernel that sharpens an image. Kernel kernel = new Kernel(3, 3, new ...

  8. linux下安装dovecot

    Dovecot是一个开源的,为Linux/Unix-like系统提供IMAP,POP3服务的软件.主要是为了安全产生的,不管大小应用,Dovecot都是一个非常优秀的选择.它非常快,配置简单,不需要专 ...

  9. win7在64位系统下编译openssl

    曾经在笔记本上配置过openssl-0.9.8g版本号,今天在公司的台式机上配置死活没配置成功.机器的系统是win7,64位.编译openssl-1.0.1e出现各种莫名的错误,最后无意中编译了1.0 ...

  10. scala 官方教程

    http://zh.scala-tour.com/#/expression-and-values scala