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——SQLite数据库(一)创建数据库、创建表、初始化数据
xml <Button android:layout_width="match_parent" android:layout_height="wrap_conten ...
- JavaScrip——练习(做悬浮框进一步:悬浮窗后缀悬浮窗【感觉这种方法比较麻烦】)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- sublime text2 配置
2.使用Package Control组件安装 也可以安装package control组件,然后直接在线安装: 按Ctrl+`调出console 粘贴以下代码到底部命令行并回车:import url ...
- [Django学习]分页
分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据, ...
- 配置QQ企业邮箱小结
https://exmail.qq.com/login 1,注册管理员账号 2,添加域名 3.设置MX记录 记录类型选:MX记录 主机记录(RR):不填(非万网可以填写@) 记录值与MX优先级分别为: ...
- C++泛型和算法
看书的速度终于慢了下来,倒不是难于理解,而是需要理解的东西有点多. 先吐槽下C++Primer这本书,不少地方都是用抽象的语言进行介绍! 拜托,你这是介绍,不是总结! 像容器适配器那里: “本质上,适 ...
- Huffman树
结点定义: /* * Huffman树结点定义 */ struct Node { ElementType weight; // 结点的权值 struct Node *leftChild; // 结点的 ...
- Python的类和函数的魔法
class CustomClass: def customFun(self, id): print("fun_1",id ) if __name__ == '__main__': ...
- socket client简单传输数据
1.整数转换为用于TCP传输的二进制 _host = "127.0.0.1" _port = 5678 _address = (_host, _port) s=socket.soc ...
- memcached +mysql+php 例子
<?php header("content-type:text/html;charset=utf-8"); $memcachehost = '127.0.0.1'; $mem ...