我想实现在现有的应用程序搜索以下这里的例子:
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,而不是其他活动。目前,该应用程序显示所有员工的列表,搜索到的员工列表是该列表的一部分,所以它会看到我可以以类似于所有员工列表的方式以某种方式显示该列表。 –