不使用Android支持库时,NavUtils的等效物是什么?

8
这个问题也被Android开发者Google Group (link)上的某个人提出过,但是没有得到答案...
我最近在Eclipse中从我的Android项目中删除了v4支持库,因为我的应用程序仅针对Android 4.0(冰激凌三明治)及以上版本。我现在正在查找所有给我报错的支持库引用。
其中一个是NavUtils,它似乎是用于Activity导航的支持库类。例如:
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId())
    {
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    }
    return super.onOptionsItemSelected(item);
}

如果不使用支持库,那么NavUtils的等效物是什么?

4个回答

4

查看NavUtils的源代码,如果需要,将其复制到您的项目中。它只是获取在清单中设置的父活动并启动它。


1
还有一点需要注意的是,自ICS(JB及以上版本)以后,所有的NavUtils函数都已经整合到了Activity类中。如果你的目标API是15及以上版本,那么你根本不需要使用NavUtils - dcow
@DavidCowden 您的意思是,如果您的目标是 API 16 及以上版本,则不需要 NavUtils。但若针对版本 15,则仍需使用 NavUtils。 - Yaroslav Mytkalyk
@DoctororDrive 是的,这是一个打字错误。感谢你发现了它。 - dcow

1

0

这是我能找到的最简单的答案,并且是我在代码中所做的:

只需替换:

NavUtils.navigateUpFromSameTask(this);

使用:

navigateUpTo(getParentActivityIntent());

希望这有帮助!

0

从Jelly Beans开始的Android版本已经将NavUtils整合到Activity类中。

在onOptionsItemSelected()方法中,无需处理case : android.R.id.home。 或者你可以直接在onOptionsItemSelected()方法中为这种情况返回false


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接