使用 Fragments 在工具栏中实现 SearchView

Implementing SearchView in Toolbar with Fragments

当前情景

我的应用程序主页由导航抽屉组成,因此我将视图加载为片段。我在工具栏中也有搜索图标。我在 menu.xml 中实现了它。下一步我按照这个问题的答案为搜索图标实现了 SearchView Implementing search in Toolbar.

如搜索视图所示,这工作正常,也可以关闭。

问题

我可以为搜索视图执行搜索查询,但我不明白如何进行。 问题是 onCreateOptionsMenuActivity 中,搜索视图的所有代码都在 Activity 中。 我不明白的是必须搜索的数据在 Fragment 中,在 Activity class 中加载。我将点击另一个网络服务来获取搜索结果,但我将如何再次膨胀 Fragment 中的搜索数据。我无法理解在这种情况下如何进行。

把这个放在你的片段中

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true);
}

你可以得到如下的 SearchView

@Override
public void onPrepareOptionsMenu(Menu menu) {
    MenuItem mSearchMenuItem = menu.findItem(R.id.mi_search);
    SearchView searchView = (SearchView) mSearchMenuItem.getActionView();
}