当不使用Android支持库时NavUtils的等价物?

这个问题也被Android Developers Google Group( 链接 )上的某个人问过,但是它没有答案…

我最近从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相当于什么?

Solutions Collecting From Web of "当不使用Android支持库时NavUtils的等价物?"

看看NavUtils的源代码,如果有必要的话,把它复制到你的项目。 它只是获取在清单中设置的父活动并启动它。

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

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

  • NavUtils
  • NavUtilsJB
  • IntentCompat
  • IntentCompatHoneycomb
  • IntentCompatIcsMr1

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

有没有必要处理的情况下android.R.id.home onOptionsItemSelected()。 或者你可以在onOptionsItemSelected()方法中返回false

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

简单地replace:

 NavUtils.navigateUpFromSameTask(this); 

有:

 navigateUpTo(getParentActivityIntent()); 

希望这可以帮助!