我只想在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/

10-08 21:40