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
的等价物是什么?
答案 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());
希望这有帮助!