8

これは私のコードです:

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 を変更できないことに注意してください。

4

1 に答える 1

9

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についてもお読みください。

于 2014-02-17T07:06:25.267 に答える