android - 使用 Android 支持库时的方法调用

标签 android android-support-library

我正在使用 Android 支持库 v4 和 v7,通过 Android Developer page我已经设置了库。

但是我对方法调用感到困惑,例如,方法:

invalidateOptionsMenu();

仅适用于 API 级别 11+,但有一个兼容版本:

ActivityCompat.invalidateOptionsMenu(this);

所以我想知道是否必须像这样添加这两个代码:

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            invalidateOptionsMenu();
        } else
            ActivityCompat.invalidateOptionsMenu(this);

这是必需的还是我只需要兼容的版本?


看来用兼容版就够了。

但是我经常发现这种代码:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    searchView.setIconifiedByDefault(false);
}

那我想知道这个条件判断的目的是什么?

最佳答案

如果您正在使用 ActionBarActivitySherlock Activity ,请使用

supportInvalidateOptionsMenu()

关于android - 使用 Android 支持库时的方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19534517/

相关文章:

android - 如何激活 Android 本地化文件编辑器

android - 扫描仪布局 Zxing

java - 无法解析方法 getChildFragmentManager()

android - 设计支持库 - SDK v21 使用哪个版本

java - ImageView setBackground 未正常运行

android - 行为树与状态机

android - 钛: Intent 后的新观点

android - 将 Android.Support Library v7 AppCompat 更新到 21.0.3 版本后出错

java - 更新 Android SDK 工具后 Eclipse 无法创建新的 Android 应用程序项目

android - 添加android支持设计库后Gradle报错