Android 菜单动态变化【添加或去除】
<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 菜单动态变化【添加或去除】的更多相关文章
- Android LayoutInflater 动态地添加删除View
我想实现点击一个按钮(或其他的事件)添加或删除View,网上找到了LayoutInflater这个类. 下面是我自己一些经验: android官网上LayoutInflater的API:http:// ...
- 通过源码了解ASP.NET MVC 几种Filter的执行过程 在Winform中菜单动态添加“最近使用文件”
通过源码了解ASP.NET MVC 几种Filter的执行过程 一.前言 之前也阅读过MVC的源码,并了解过各个模块的运行原理和执行过程,但都没有形成文章(所以也忘得特别快),总感觉分析源码是大神 ...
- 【Android】6.0 添加Menu菜单组件、Intent启动活动、显式Intent、隐式Intent
1.0 在helloworld项目基础上创建活动SecondActivity: 2.0 其中main.xml: <?xml version="1.0" encoding=&q ...
- 关于React的require添加动态变化的路径
关于React的require添加动态变化的路径 直接这样写显然是不会有错误的 let path = require('../images/girl.png'); 但是如果你尝试着 var gg = ...
- Android中动态更新ListView(转)
在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中.实现步骤:调用ListView的setOnSc ...
- 【转】Android菜单详解——理解android中的Menu--不错
原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...
- Android Studio 动态调试 apk 反编译出的 smali 代码
在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...
- 简单的 Android 菜单
Android 创建简单的菜单 一:上下文菜单: 1.在 res 下创建菜单项资源文夹 menu app->右击res->new->android resourse director ...
- Android菜单
Android菜单概述 菜单是Activity的一个重要组成部分,它为用户操作提供了快捷的途径.Android提供了一个简单的框架来向程序中添加标准菜单 . 一.创建一个菜单资源 你需要在一个XML ...
随机推荐
- Android——事件处理模型一(基于回调机制的事件处理)(转)
Android平台的事件处理机制有两种,一种是基于回调机制的,一种是基于监听接口的,现介绍第一种:基于回调机制的事件处理.Android平台中,每个View都有自己的处理事件的回调方法,开发人员可以通 ...
- Hadoop日志分析工具——White Elephant
White Elephant 是一个Hadoop日志收集器和展示器,它提供了用户角度的Hadoop集群可视化.White Elephant 是全球最大的职业社交网站Linkedin开发的一套分析Had ...
- 决策树---ID3算法(介绍及Python实现)
决策树---ID3算法 决策树: 以天气数据库的训练数据为例. Outlook Temperature Humidity Windy PlayGolf? sunny 85 85 FALSE no ...
- jquery javascript 回到顶部功能
今天搞了一个回到顶部的JS JQ功能 (function($){ $.fn.survey=function(options){ var defaults={width:"298", ...
- 使用Backbone构建精美应用的7条建议
我们在Bizzabo使用Backbone.js已经有两年的时间了.我们从一个小的网页应用为开始,这些小应用是由Backbone驱动的,而且他们看上去非常友好. Backbone天生就不固执己见.你从文 ...
- Message Code 【27796】 Failed to connect to server 'hostname';port_ld': 'reason'.
Message Code [27796] Failed to connect to server 'hostname';port_ld': 'reason'.Unable to connect to ...
- Windoows窗口程序二
WNDCLASS属性style取值: CS_GLOBALCLASS--应用程序全局窗口类 CS_BYTEALIGNCLIENT--窗口客户区的水平位置8倍数对齐 CS_BYTEALIGNWINDOW- ...
- C++(1)C++类四个默认函数---构造函数、析构函数、拷贝函数、赋值函数
C++构造函数和析构函数 默认构造函数指不带参数或者所有参数都有缺省值的构造函数!!! (1)构造函数.析构函数与赋值函数 构造函数.析构函数与赋值函数是每个类最基本的函数.它们太普通以致让人容易麻痹 ...
- android tab之间滑动切换界面功能
1. onTouchListener(); //捕捉touch事件,比如说onDown 需要将可滑动的控件加上两个方法:(1)view.setOnTouch ...
- 第五章 使用 SqlSession(MyBatis)
在 MyBatis 中,你可以使用 SqlSessionFactory 来创建 SqlSession.一旦你获得一个 session 之后,你可以使用它来执行映射语句,提交或回滚连接,最后,当不再需要 ...