Android 使用支持库来支持 SearchView

标签 android android-actionbar android-support-library android-search

这是我的代码:

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/

相关文章:

android - 在 Android 上移动到 SD 卡

java - 比较时间戳时的 Firestore 查询问题

android - 如何为 ActionBar 上的图标添加边距?

android - android 中的 Appcompat-v7 冲突

android - Gradle没有正确选择appcompat-v7:22.2.1

android - 如何使 ConstraintLayout 使用百分比值?

java - 在实现 native Toast 模块后使用来自 React Native 的 native 模块时未处理的 promise 拒绝

Android SQLite 插入工作,查询不工作

android - 使用 ActionBarSherlock 更改主页图标

android - 透明 ActionBar 不起作用