很简单,
操作栏的左上角是应用程序的默认图标。在大多数应用中,它会被点击并返回主页。我正在使用2个设备,3.2和2.3.3,我试图在3.2上实现操作栏而不影响另一个。
我想它的实现方式如下:
case android.R.id.home:
Intent intent = new Intent(this, ActOnThisActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
最后一件事是设置标志
getActionBar().setHomeButtonEnabled(true);
这应该可行,但任何熟悉android的人都知道,这不能在11或更低的API上运行。所以它将运行在3.2+而不是2.3.3。有没有办法指定此方法仅适用于api11及以上版本?
注意@TargetApi(11)注释可能有效,但我有一些奇怪的错误。
答案 0 :(得分:1)
从sdk示例中查看ActionBarCompat
可以让您了解如何执行此操作。
ActionBarHelper
类(来自示例)中的以下代码决定不同版本的实例。
public static ActionBarHelper createInstance(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
return new ActionBarHelperICS(activity);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
return new ActionBarHelperHoneycomb(activity);
} else {
return new ActionBarHelperBase(activity);
}
}
答案 1 :(得分:1)
看看ActionbarSherlock - 我在几个应用程序中使用它,它完美无瑕。在Honeycomb(3.0)以下的Android版本中完美模仿Action Bar。
几乎所有与操作栏交互的主要API。这是确切的API getSupportActionBar()公开。
答案 2 :(得分:1)
有没有办法指定此方法仅适用于api11及以上版本?
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB) {
getActionBar().setHomeButtonEnabled(true);
}