惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
T
The Blog of Author Tim Ferriss
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
Engineering at Meta
Engineering at Meta
量子位
I
InfoQ
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog
J
Java Code Geeks
Recent Announcements
Recent Announcements
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
V
V2EX
腾讯CDC
P
Proofpoint News Feed
A
About on SuperTechFans
爱范儿
爱范儿
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI

博客园 - gcg0036

亚信仨月印象(国庆时再写) 博客搬家了! log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a "org.apache.log4j.Appender" variable. 模板引擎Crox用法大全(更新版) Apache Tomcat Maven Plugin 参数大全(Tomcat 6) Apache Tomcat Maven Plugin MyEclipse 2015 CI 12 无限试用 sshe源码分析——权限管理的后台部分 sshe源码分析——全局架构 无聊的三月终于过去了 failed to initialize monitor thread 在Android项目中的测试类点击"run as JUnit test"出错 Interacting with Other Apps Saving Data Managing the Activity Lifecycle Building Your First App The AndroidManifest.xml File handlebars简单用法 高性能跨语言模板引擎Crox
Adding the Action Bar
gcg0036 · 2015-03-08 · via 博客园 - gcg0036

http://www.cnblogs.com/gcg0036/p/4321263.html

设置基本操作栏,要求应用程序使用适合该操作栏的活动主题。如何申请这样的主题取决于应用程序能支持的最低安卓版本。

从Android3.0(API级别11)开始,操作栏包含在所有使用 Theme.Holo主题(或者它的子类)的活动中。无论是 targetSdkVersion 还是minSdkVersion,当把属性设置为11或者更大时Theme.Holo是默认的主题。

注意:如果您已经创建了自定义主题,要确保它使用了Theme.Holo主题之一作为父辈

现在 Theme.Holo 主题应用到了应用程序,而且所有活动均在操作栏显示。

添加操作按钮

这就声明了当操作栏空间足够时,搜索操作会显示为操作按钮,但是搜索操作总会在溢流中出现(默认情况下,所有操作会在溢出中出现)。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.amIurs.MainActivity" >

    <!-- Search, should appear as action button -->
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:showAsAction="ifRoom"
        android:title="@string/action_search"/>
    <!-- Settings, should always be in the overflow -->
    <item
        android:id="@+id/action_settings"
        android:showAsAction="never"
        android:title="@string/action_settings"/>

</menu>
public class MainActivity extends Activity {

  ...

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items
    switch (item.getItemId()) {
        case R.id.action_search:
        // openSearch();
        Log.d("a", "search");
        return true;
        case R.id.action_settings:
        // openSettings();
        Log.d("b", "setting");
        return true;
        default:
        return super.onOptionsItemSelected(item);
    }
    }

并非应用程序主要入口的所有界面(活动不属于“home”界面)应该向用户提供导航到应用程序层次结构中的逻辑父类屏幕,操作栏的向上按钮即可实行这一操作。

在Android4.1(API级别16)或者更高级别运行时,或者在支持库使用ActionBarActivity时,进行向上导航只需要在清单文件中声明父类活动,并且启用操作栏中的向上按钮。

public class DisplayMessageActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
    ...

    getActionBar().setDisplayHomeAsUpEnabled(true);
    // If your minSdkVersion is 11 or higher, instead use:
    // getActionBar().setDisplayHomeAsUpEnabled(true);
    }

image image

由于系统知道 MainActivity是 DisplayMessageActivity的父类活动,当用户按下向上按钮时,系统会导航到适当的父类活动——不必处理向上按钮相关事情。