【问题标题】:Android use support library to support SearchViewAndroid使用支持库来支持SearchView
【发布时间】:2014-02-17 07:02:55
【问题描述】:

这是我的代码:

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。

【问题讨论】:

  • 这个错误其实可以忽略。 Eclipse 中有一个设置可以关闭它。或者,如果您在 Eclipse 中的任何其他文件中单击调试按钮,它不会停止构建。
  • 使用 editText 而不是 searchview。清单中的 min sdk 是什么?
  • 不能更改最小 sdk 是什么意思?
  • @VishalSantharam 我的意思是我想支持设备 2.2 及更高版本
  • @GabeSechan 所以如果我忽略了这个错误,我的应用程序仍然可以在 android 2.2 及更高版本上运行吗?

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


【解决方案1】:

你可以使用 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

【讨论】:

  • 我正在测试你的解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多