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

时间:2013-10-23 06:37:44

标签: 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);
}

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

3 个答案:

答案 0 :(得分:4)

如果您使用的是ActionBarActivitySherlock活动

supportInvalidateOptionsMenu()

答案 1 :(得分:3)

兼容版本适用于两者。所以,使用

ActivityCompat.invalidateOptionsMenu(this);

答案 2 :(得分:2)

你可以简单地使用

        ActivityCompat.invalidateOptionsMenu(this);

当您包含支持库时,您只能使用它。