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结合的更多相关文章

  1. Android ActionBar以及menu的代码设置样式

    menu部分xml代码 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android= ...

  2. android ActionBar 去掉menu分隔线

    自定义Theme继承原来Theme修改其中的分隔线: <item name="actionBarDivider">@null</item>  低版本设置 & ...

  3. Android ActionBar 初探

    1.指南,例子,个人感觉 首先上官网指南链接http://developer.android.com/guide/topics/ui/actionbar.html 参考了官网上的例子http://de ...

  4. Android ActionBar

    ActionBar 在android3.0中就加入了,但是android3.0适用于平板电脑的,在手机不能使用.android 4.0之后也开始有AndroidBar.所以说要想使用androidBa ...

  5. ToolBar、ActionBar与Menu的纠葛(以及navigationIcon、setHomeButtonEnabled、setDisplayHomeAsUpEnabled)

    因为贴图的繁琐...所以下面是无图版...完整的在这里: 探究一下toobar和actionbar在使用menu时的吊诡情况 一.背景介绍 toolbar最近比较火,而且是出出来代替actionbar ...

  6. Android ActionBar 一步一步分析 (转)

    原文摘自:http://blog.csdn.net/android2me/article/details/8874846 1.Action Bar 介绍 我们能在应用中看见的actionbar一般就是 ...

  7. Android ActionBar详解

    Android ActionBar详解 分类: Android2014-04-30 15:23 1094人阅读 评论(0) 收藏 举报 androidActionBar   目录(?)[+]   第4 ...

  8. Android ActionBar(转)

    本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用“返回/向上”程 ...

  9. Android ActionBar应用实战,高仿微信主界面的设计

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/26365683 经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对 ...

  10. Android ActionBar完全解析,使用官方推荐的最佳导航栏(下) .

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...

随机推荐

  1. proxychains 安装

    一.安装下载源码: git clone https://github.com/rofl0r/proxychains-ng 编译和安装: cd proxychains-ng ./configure -- ...

  2. 新手C#SQLServer在程序里实现语句的学习2018.08.12

    从C#中连接到SQL Server数据库,再通过C#编程实现SQL数据库的增删改查. ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据 ...

  3. Spring WebMVC 4.1返回json时 406(Not Acceptable)

    1.问题现象Tomcat7+Spring4.1.4,返回json字符串时发生406错误 The resource identified by this request is only capable ...

  4. V4 V7 V13支持包的区别

    三者均为支持包,可以让低版本系统使用高版本特性,支持最小版本有差异 V4支持1.6以上 V7支持2.1以上 V13支持3.2以上 V7依赖V4

  5. 利用 AWK 的数值计算功能提升工作效率(转载)

    Awk 是一种优秀的文本样式扫描和处理工具.转文侧重介绍了 awk 在数值计算方面的运用,并通过几个实际工作中的例子,阐述了如何利用 awk 的计算功能来提高我们的工作效率.转文源自IBM Bluem ...

  6. pyhon之函数参数

    #函数的参数分为形参和实参,其中形参就是形式参数,是在创建函数的时候定义,实参就是实际参数,是在调用的函数的时候创建,这个并不是重点,具体#的参数内部,我们可以把参数分为以下4种# 1.普通参数# 2 ...

  7. Course Schedule课程表12(用Topological Sorting)

    [抄题]: 现在你总共有 n 门课需要选,记为 0 到 n - 1.一些课程在修之前需要先修另外的一些课程,比如要学习课程 0 你需要先学习课程 1 ,表示为[0,1]给定n门课以及他们的先决条件,判 ...

  8. Java动态代理机制详解(类加载,JDK 和CGLIB,Javassist,ASM)

    class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中.这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码.JVM虚拟机读取字节码文件,取出 ...

  9. ROS学习笔记二(创建ROS软件包)

    catkin软件包的组成 一个软件包必须满足如下条件才能被称之为catkin软件包: 必须包含一个catkin编译文件package.xml(manifests文件),此文件包含了描述该软件包的重要信 ...

  10. discuz回贴通知插件实现-页面嵌入点(钩子)

    1.如何保证主题被回复时业务代码被执行. 2.获得主题,主题发布者,贴子等信息. 3.discuz发送email邮件.   discuz使用嵌入点(钩子)来处理代码的执行时机. 当用户开启插件开发者模 ...