这个问题也被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());
希望这有帮助!