android提供的向上导航栏

 使用Android自带的返回操作


在AndroidManifest.xml中<activity>标签添加属性android:parentActivityName=".MainActivity"。或者添加<meta-data>标签,<meta-data>添加android:name属性,对应的值是android.support.PARENT_ACTIVITY,添加android:value属性,对应的值是父Activity的名称。如下所示:

<meta-data 
    android:name="android.support.PARENT_ACTIVITY"
    android:value=".MainActivity" />

<activity>标签添加主题:android:theme="@android:style/Theme.Holo.Light.DarkActionBar",添加之后导航栏返回图标是一个左箭头的小图标。

在SecondActivity中实现onoOptionsItemSelected(MenuItem item)方法,添加如下代码:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case android.R.id.home:
                Intent upIntent = NavUtils.getParentActivityIntent(this);
                if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
                    // This activity is NOT part of this app's task, so create a new task
                    // when navigating up, with a synthesized back stack.
                    TaskStackBuilder.create(this)
                            // Add all of this activity's parents to the back stack
                            .addNextIntentWithParentStack(upIntent)
                            // Navigate up to the closest parent
                            .startActivities();
                } else {
                    // This activity is part of this app's task, so simply
                    // navigate up to the logical parent activity.
                    NavUtils.navigateUpTo(this, upIntent);
                }
                return true;
        }
        return super.onOptionsItemSelected(item);
    }


NavUtils位于android.support.v4.app.NavUtils包中。常用方法介绍,用法在onOptionsItemSelected方法中进行了说明。

public static Intent getParentActivityIntent (Activity sourceActivity)
参数:sourceActivity要返回到上一个页面的当前页面。

返回:返回当前页面的上一级Activity或者null。

public static boolean shouldUpRecreateTask(Activity sourceActivity,Intent targetIntent)

参数:sourceActivity用户尝试导航到上一个页面的当前Activity页面

          targetIntent 代表导航的目标Intent。

返回值:返回true导航到上一个页面应该重新创建一个新的任务栈,返回false同样的任务栈应该被使用作为目标Intent。

public static void navigateUpTo(Activity sourceActivity,Intent upIntent)
参数:sourceActivity 当前Activity,用户正在尝试导航到上一个页面。

upIntent 一个Intent代表要导航到上一级页面的Intent。


参考:http://blog.csdn.net/aikongmeng/article/details/37934741

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值