相当于不使用 Android 支持库时的 NavUtils



这个问题也被Android开发者谷歌组(链接)上的某人问过,但它没有答案......

我最近从 Eclipse 中的 Android 项目中删除了 v4 支持库,因为我的应用程序只针对 Android 4.0(冰淇淋三明治)及更高版本。我现在正在浏览所有给我错误的支持库参考。

一个特别的是 NavUtils ,它似乎是活动导航中使用的支持库类。例:

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId())
    {
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    }
    return super.onOptionsItemSelected(item);
}

不使用支持库时相当于NavUtils

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

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

以下是应复制到项目中的类列表:

  • NavUtils
  • NavUtilsJB
  • IntentCompat
  • IntentCompatHoneycomb
  • IntentCompatIcsMr1

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

没有必要处理这种情况:安卓。R.id.home in onOptionsItemSelected().或者,您可以在 onOptionsItemSelected() 中为这种情况返回 false

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

只需替换:

NavUtils.navigateUpFromSameTask(this);

跟:

navigateUpTo(getParentActivityIntent());

希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新