2017-06-20 75 views
0

因此,我試圖使用應用欄執行搜索並將查詢傳遞給我稱爲「searchRequest」的屬性。我想顯示結果。如何使用應用程序欄執行搜索?

我一直在關注this guide in the documentation並試過但我後來無濟於事。

正如我已經註釋到的,我的臨時解決方案是調用我的加載器,並使「searchRequest」成爲類屬性。但是這似乎會導致多個問題,例如儘管按下後退按鈕,結果仍然保留在屏幕上。

我試過覆蓋onOptionsMenuClosed()方法,將setOnCloseListener()設置爲我的searchView。

我懷疑我應該在專門的SearchActivity中做這件事。

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.options_menu, menu); 

    // Associate searchable configuration with the SearchView 
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView(); 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      this.searchRequest = query; 
      /*LoaderManager loaderManager = getLoaderManager(); 
      loaderManager.initLoader(BOOK_LOADER_ID, null,MainActivity.this);*/ 

      return true; 
     } 

     @Override 
     public boolean onQueryTextChange(String newText) { 
      return false; 
     } 
    }); 
} 
+0

查看本教程http://instinctcoder.com/android-studio-sqlite-search-searchview-actionbar/ – RameshJaga

回答

0

添加這個,當搜索​​視圖展開或摺疊時會調用它。

MenuItemCompat.setOnActionExpandListener(searchView, 
        new MenuItemCompat.OnActionExpandListener() { 
         @Override 
         public boolean onMenuItemActionExpand(MenuItem menuItem) { 
          return true; 
         } 

         @Override 
         public boolean onMenuItemActionCollapse(MenuItem menuItem) { 
          // Refresh here with full list. 
          return true; 
         } 
        }); 
+0

這正是我想要的!謝謝! –

相關問題