这是我的代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
MenuItem searchItem = menu.findItem(R.id.searchMenuItem);
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
// searchView.set
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
}
我的最低 API 是 8。
我有这个编译错误
Call requires API level 11 (current min is 8):
android.widget.SearchView#setSearchableInfo
请注意,我无法更改最低 SDK。
最佳答案
你可以使用 android.support.v7.widget.SearchView
代替 android.widget.SearchView
您的代码可能如下所示:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
MenuItem searchItem = menu.findItem(R.id.searchMenuItem);
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
android.support.v7.widget.SearchView searchView = (android.support.v7.widget.SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
}
另请阅读有关 SearchViewCompat 的更多信息
关于Android 使用支持库来支持 SearchView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21822721/