我正在使用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);
}
然后我想知道这个条件判断的目的是什么?
答案 0 :(得分:4)
如果您使用的是ActionBarActivity
或Sherlock
活动
supportInvalidateOptionsMenu()
答案 1 :(得分:3)
兼容版本适用于两者。所以,使用
ActivityCompat.invalidateOptionsMenu(this);
答案 2 :(得分:2)
你可以简单地使用
ActivityCompat.invalidateOptionsMenu(this);
当您包含支持库时,您只能使用它。