《Android平板电脑开发秘籍》——3.5节技巧:点击应用程序图标后跳转至应用程序首页...

    xiaoxiao2024-03-17  19

    本节书摘来自异步社区《Android平板电脑开发秘籍》一书中的第3章,第3.5节技巧:点击应用程序图标后跳转至应用程序首页,作者 【印度】B.M. Harwani,更多章节内容可以访问云栖社区“异步社区”公众号查看

    3.5 技巧:点击应用程序图标后跳转至应用程序首页Android平板电脑开发秘籍如果用户点击了ActionBar内的Logo或图标,将会跳转至应用程序首页。应用程序首页的意思是应用程序的主Activity,即Activity栈的根成员。

    默认情况下,显示在ActionBar中的Logo或图标是不能被点击的。为了让Logo或图标能被点击,必须调用ActionBar的setHomeButtonEnabled()方法,并把Boolean值True传入,如下所示:

    actionBar.setHomeButtonEnabled(true);

    点击Logo或图标意味着点击了一个菜单项,将由Activity的事件处理方法(Handler)onOptionsItemSelected来处理。当点击Logo或图标时,将被视作点击了ID为android. ``R.id.home的菜单项。换句话说,当点击Logo或者图标时,将会调用onOptionItemSelected()方法,android.R.id.home将作为参数被传入。假设当前Activity是CreateActivity,点击图标后要跳转的主Activity或根Activity为ActionItemsAppActivity,代码清单3-3给出了代码。

    代码清单3-3 写入Activity文件CreateActivity.java的代码

    package com.androidtablet.actionitemsapp; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.MenuItem; public class CreateActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.create); ActionBar actionBar = getActionBar(); actionBar.setHomeButtonEnabled(true); } @Override public boolean onOptionsItemSelected(MenuItem item) { #1 switch (item.getItemId()) { case (android.R.id.home) : Intent intent = new Intent(this, ActionItemsAppActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); break; default: return super.onOptionsItemSelected(item); } return true; } }

    上述代码假定名为create.xml的Layout文件已存在于res/layout文件夹中。为了能跳转到主Activity,使用了一个名为FLAG_ACTIVITY_CLEAR_TOP的Intent标记,用以关闭所有在主Activity之后启动的Activity。在上述代码中可以看到,通过调用getActionBar()方法获得了ActionBar对象actionBar,Boolean值True被传入了setHomeButtonEnabled()方法,这使得应用程序的Logo可被点击了。点击应用程序的Logo,将会在ID为android.R.id.home的菜单项上生成一个点击事件。在事件处理方法onOptionsItemSelected()中,将检查ID为android.R.id.home的菜单项是否被点击了,也即应用程序的Logo是否被点击。如果是应用程序Logo被点击了,将会跳转至应用程序的主Activity ActionItemsAppActivity.class中,跳转操作是通过清除栈顶所有其他Activity(如果存在的话)来实现的。

    在Android 4.1以上的版本中,上述代码中语句#1代表的onOptionsItemSelected方法可以整个去掉。也就是说,只要在AndroidManifest.xml文件中加入以下语句,就可以跳转至主Activity中了:

    <activity android:name=".CreateActivity" android:label="@string/app_name" android:parentActivityName="ActionItemsAppActivity"/> 相关资源:敏捷开发V1.0.pptx
    最新回复(0)