不使用Android支持库时,等效的NavUtils?

时间:2012-12-18 06:09:31

标签: android navigation android-4.0-ice-cream-sandwich android-version android-support-library

Android开发者Google小组(link)上的某个人也提出了这个问题,但它没有答案......

我最近从Eclipse中的Android项目中删除了v4支持库,因为我的应用程序仅针对Android 4.0(Ice Cream Sandwich)及以上版本。我现在正在查看给我错误的所有支持库引用。

特别是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 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

如果你不想在你的项目中拥有整个android v4支持库,我发现@ Nikolay的方法是最好的。

这是您应该复制到项目中的类列表:

答案 2 :(得分:0)

Jelly Beans的Android版本将NavUtils合并到Activity类中。

无需处理onOptionsItemSelected()中的案例:android.R.id.home 。 或者你可以在onOptionsItemSelected()中为返回false

答案 3 :(得分:0)

以下是我能找到的最简单的答案,以及我在代码中所做的事情:

简单地替换:

NavUtils.navigateUpFromSameTask(this);

使用:

navigateUpTo(getParentActivityIntent());

希望这有帮助!