Android-ActionBar-与Menu结合

ActionBar就是一个标题栏,以前Android3.0之前还称为标题栏,Android3.0之后取名为ActionBar
首先必须在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类,否则将无法使用ActionBar
android:theme="@android:style/Theme.Holo.Light"
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@android:style/Theme.Holo.Light"
android:name=".intent.MyApplication">
Android对ActionBar进行了一系列的封装;
ActionBar就是标题栏:

隐藏标题栏:
package liudeli.activity; import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle; public class MyActionBarActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_action_bar); // ActionBar是在Activity中,所以可以直接得到
ActionBar actionBar = getActionBar(); // 隐藏ActionBar(标题栏)
actionBar.hide();
}
}

可以对ActionBar进行各种各样的设置,ActionBar提供了各式各样的方法:

关于Menu菜单:
早期之前的Android2.2,Android2.3 ..... 系统的手机,都是有Menu菜单键的,一般是在左边的键,就是菜单Menu键

随着Android的发展,这个菜单Menu键 慢慢的就不见了,现在很多手机都没有了这个菜单Menu键了,于是Android就设计了可以把Menu放置在ActionBar上;
AndroidManifest.xml的主题配置为 可以使用ActionBar
首先必须在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类,否则将无法使用ActionBar
android:theme="@android:style/Theme.Holo.Light"
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@android:style/Theme.Holo.Light"
android:name=".intent.MyApplication">
Activity的代码:
package liudeli.activity; import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast; public class MyActionBarActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // ActionBar是在Activity中,所以可以直接得到
// ActionBar actionBar = getActionBar(); // 隐藏ActionBar(标题栏)
// actionBar.hide(); // actionBar. ......
} /**
* 创建菜单里面的选择
* @param menu
* @return
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
// 使用菜单加载器
MenuInflater menuInflater = getMenuInflater(); // 加载一个菜单文件
menuInflater.inflate(R.menu.menu, menu); return true;
} /**
* 菜单里面的选择被选择回调
* @param item
* @return
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.menu_create:
Toast.makeText(this, item.getTitle()+ "-你选择了创建", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_delete:
Toast.makeText(this, item.getTitle()+ "-你选择了删除", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_sub1: // 子菜单
Toast.makeText(this, item.getTitle()+ "-你选择了子菜单一", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_sub2: // 子菜单
Toast.makeText(this, item.getTitle()+ "-你选择了子菜单二", Toast.LENGTH_SHORT).show();
break;
}
return true;
}
}
Menu.xml 文件的代码

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> <item
android:id="@+id/menu_create"
android:icon="@android:drawable/ic_menu_add"
android:title="X新建">
</item> <item
android:id="@+id/menu_delete"
android:icon="@android:drawable/ic_menu_add"
android:title="X删除">
</item> <item android:title="X子菜单"> <menu> <item
android:id="@+id/menu_sub1"
android:icon="@android:drawable/ic_menu_add"
android:title="X子菜单1">
</item> <item
android:id="@+id/menu_sub2"
android:icon="@android:drawable/ic_menu_add"
android:title="X子菜单2">
</item> </menu> </item> </menu>
效果:(Android模拟器是有Menu菜单键的)

Android-ActionBar-与Menu结合的更多相关文章
- Android ActionBar以及menu的代码设置样式
menu部分xml代码 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android= ...
- android ActionBar 去掉menu分隔线
自定义Theme继承原来Theme修改其中的分隔线: <item name="actionBarDivider">@null</item> 低版本设置 & ...
- Android ActionBar 初探
1.指南,例子,个人感觉 首先上官网指南链接http://developer.android.com/guide/topics/ui/actionbar.html 参考了官网上的例子http://de ...
- Android ActionBar
ActionBar 在android3.0中就加入了,但是android3.0适用于平板电脑的,在手机不能使用.android 4.0之后也开始有AndroidBar.所以说要想使用androidBa ...
- ToolBar、ActionBar与Menu的纠葛(以及navigationIcon、setHomeButtonEnabled、setDisplayHomeAsUpEnabled)
因为贴图的繁琐...所以下面是无图版...完整的在这里: 探究一下toobar和actionbar在使用menu时的吊诡情况 一.背景介绍 toolbar最近比较火,而且是出出来代替actionbar ...
- Android ActionBar 一步一步分析 (转)
原文摘自:http://blog.csdn.net/android2me/article/details/8874846 1.Action Bar 介绍 我们能在应用中看见的actionbar一般就是 ...
- Android ActionBar详解
Android ActionBar详解 分类: Android2014-04-30 15:23 1094人阅读 评论(0) 收藏 举报 androidActionBar 目录(?)[+] 第4 ...
- Android ActionBar(转)
本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用“返回/向上”程 ...
- Android ActionBar应用实战,高仿微信主界面的设计
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/26365683 经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对 ...
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(下) .
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...
随机推荐
- Chi-Square Statistic/Distribution
. 1.What is a Chi Square Test? 卡方检验有两种类型.两者使用卡方统计量和分布的目的不同. 第一种:卡方拟合优度检验确定样本数据是否与总体匹配.(这里不介绍) 第二种:独立 ...
- 用R包来下载sra数据
1)介绍 我们用SRAdb library来对SRA数据进行处理. SRAdb 可以更方便更快的接入 metadata associated with submission, 包括study, sa ...
- FIFO 、LRU、LFU三种算法
提到缓存,有两点是必须要考虑的:(1)缓存数据和目标数据的一致性问题.(2)缓存的过期策略(机制). 其中,缓存的过期策略涉及淘汰算法.常用的淘汰算法有下面几种:(1)FIFO:First I ...
- HTML的基础知识
1.什么是HTML? html是一种,用来描述网页的一种语言,指的是一种超文本编辑语言,他不是一种编程的语言,而是一种标记的语言,包含:静态HTML和动态的HTML: 2.学习推荐的网站: http: ...
- Python float() 函数
Python float() 函数 Python 内置函数 描述 float() 函数用于将整数和字符串转换成浮点数. 语法 float()方法语法: class float([x]) 参数 x - ...
- 探讨 .NET 4 新增的 SortedSet 类
http://www.cnblogs.com/WizardWu/archive/2010/06/17/1759297.html
- In case of failure
In case of failure http://acm.hdu.edu.cn/showproblem.php?pid=2966 Time Limit: 60000/30000 MS (Java/O ...
- [leetcode]238. Product of Array Except Self除了自身以外的数组元素乘积
Given an array nums of n integers where n > 1, return an array output such that output[i] is equ ...
- [leetcode]560. Subarray Sum Equals K 和为K的子数组
Given an array of integers and an integer k, you need to find the total number of continuous subarra ...
- memcache缓存失效
缓存过期 memcached在处理过期的缓存项时,采用懒惰模式处理方法. 缓存项过期,不会立即删除,直到对该缓存项执行了get操作,才会删除过期缓存. > set key 0 10 > t ...