我只想在API级别11和更高版本上使用向上按钮,但是我的程序需要在所有设备上运行。我怎样才能做到这一点?
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
要么
我可以向所有API级别添加向上按钮吗?
请指教...
最佳答案
您可以使用以下方法检查设备上安装的Android OS版本:
int currentAPIVersion = android.os.Build.VERSION.SDK_INT;
if (currentAPIVersion >= android.os.Build.VERSION_CODES.HONEYCOMB) {
// RUN THE CODE SPECIFIC TO THE API LEVELS ABOVE HONEYCOMB (API 11+)
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
您可能必须在应用程序的每个“活动”部分中运行此检查,并且可能还需要在API级别低于11时提供替代方法。
但是,在设备上使用不同API级别的用户在UX中会存在差异。为了弥合这一点,您可以考虑查看ActionBarSherlcock Library,无论API级别(2.x及更高)如何,它都会帮助您将奇偶校验带入应用程序。
更新:
要向主页按钮添加将返回到上一个
Activity
的操作,请覆盖onOptionsItemSelected()
方法,如下所示。注意在代码中使用android.R.id.home
。如果您有其他菜单项将显示在同一ActionBar
中的onOptionsItemSelected()
中,则可以将其他情况添加到开关块中。@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home: {
this.finish();
return true;
}
default:
return super.onOptionsItemSelected(item);
}
}
关于android - 想要仅在api级别11之后运行向上按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15518638/