8

這是我的代碼:的Android應用支持庫,以支持搜索查看

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。

+0

這個錯誤實際上可以忽略。 Eclipse中有一個關閉它的設置。或者如果你在Eclipse中的任何其他文件中,當你點擊調試按鈕時,它不會停止構建。 –

+0

使用editText代替searchview。清單中的最小sdk是什麼? – Raghunandan

+0

你的意思是不能改變最小sdk? –

回答

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

+0

我正在測試你的解決方案 – user2059935

+0

令人驚歎,非常感謝 – user2059935