在我的MainActivity中,我的操作栏/工具栏/菜单上有一个活动的搜索按钮。我想知道是否有办法过滤活动搜索的片段表单中的列表?提前谢谢!
如果每个片段(它们位于带有标签的viewpager +操作栏中)可以拥有自己的操作栏,那就更好了!
答案 0 :(得分:1)
您应该为活动的视图寻呼机
创建自定义适配器然后显示来自适配器的片段,现在您有两个选择用于您的目的:
祝你好运我的朋友
答案 1 :(得分:1)
如果您不想使用系统服务实现搜索described in docs,那么一种方法如下:
在onCreate方法中获取片段的句柄
// if you fragment is embedded with <fragment tag>
mMySearchFragment = (MySearchfragment)getFragmentManager()
.findFragmentById(R.id.your_fragment)
//in case your fragment is added programmatically then, of course,
getFragmentManager()
.beginTransaction()
.add(fragmentid, gragmentinstance, TAG)
.commit();
在onCreateOptionsMenu中执行类似
的操作public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_searching, menu);
mSearchView = (SearchView) menu.findItem(R.id.menu_search_message).getActionView();
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){
@Override
public boolean onQueryTextSubmit(String query) {handleSearch(query)}
@Override
public boolean onQueryTextChange(String newText) { ... }
});
return true;
}
最后
private void handleSearch(String query){
if(mMySearchFragment != null){
mMySearchFragment.updateSearchResults(query);
}
}
您的片段需要有一个公共方法updateSearchResults(String query)
,您可以在其中运行搜索并使用新集合更新列表视图的适配器
此外,您可以在Studio中导入BasicContactables示例(文件 - &gt;导入示例)并调查代码