我想實現在現有的應用程序搜索以下這裏的例子:
http://www.materialdoc.com/search-filter/顯示搜索結果,而不是活動
應用程序使用的片段取代改變顯示器等,而不是創建另一個活動我試圖在另一個片段中顯示結果。問題是當輸入搜索字符串並且放大類是它時,不會調用處理程序。
我認爲主要的問題是在這個代碼MainActivity.onCreateOptionsMenu()
:
// Associate searchable configuration with the SearchView
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
ComponentName componentName = new ComponentName(this, MainActivity.class);
// ComponentName componentName = new ComponentName(this, SearchListFragment.class); // results in NPE
searchView.setSearchableInfo(searchManager.getSearchableInfo(componentName));
調用setSearchableInfo()
與MainActivity.class
什麼都不做,並與SearchListFragment.class
結果在NPE調用它。
我在這裏創造一個SSCCE:
https://github.com/emnrd-ito/SearchFragmentTest
你可以看到如何解決這一問題?
我不確定你在做什麼。在引用的示例中缺少一些片段,例如在清單中定義搜索「活動」並處理搜索「意圖」。你是否想用'Fragment'來代替'Activity'?我錯過了什麼? – Cheticamp
我正在嘗試使用MainActivity,而不是其他活動。目前,該應用程序顯示所有員工的列表,搜索到的員工列表是該列表的一部分,所以它會看到我可以以類似於所有員工列表的方式以某種方式顯示該列表。 –