在我的应用程序中,我有两个选项卡,一个选项卡显示一个书籍列表,另一个选项卡显示一个朋友列表。这两个选项卡都是MainActivity的片段,该片段在其工具栏中实现了searchView。我拥有的当前searchView在MainActivity中这样声明:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
if(searchView.getWidth()>0)
{
SearchFragment myFrag = new SearchFragment();
Bundle bundle = new Bundle();
bundle.putString("searchQuery", query);
myFrag.setArguments(bundle);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, myFrag);
transaction.addToBackStack(null);
transaction.commit();
return true;
}
return true;
}
@Override
public boolean onQueryTextChange(final String query)
{
return true;
}
});
return true;
}
现在,此searchView可以在我与MainActivity相关联的所有片段中使用,但问题是搜索始终执行相同的操作。我想做的是,当我在片段书中时,我的searchView要做下面的事情,而当我在片段朋友中时,我的searchView做其他事情。有没有一种方法可以在片段中重新分配searchView以便执行其他操作,或者以MainActivity可以识别我所在的片段的方式进行创建,从而使搜索根据该内容执行其他操作?谢谢。