如何将 Bundle 中的 SearchView 对象从 Activity 发送到 Fragment

How to send an SearchView Object within Bundle to Fragment from Activity

我有一个 SearchView 对象。我想从 MainActivity.

发送到 Fragment (MyFragment.java)

我正在使用 setArguments() 方法。但是,我无法将 searchView 对象放入捆绑包中。

这是我的代码。

searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
Bundle bundle = new Bundle();
bundle.putParcelable("searcObject",searchView);

MyFragment f1 = new MyFragment();

f1.setArguments(bundle);
trans.replace(R.id.fragment_container, f1).commit();

这是不可能的,因为视图不可打包/可序列化。请参阅 this 问题以获得完整解释

您需要传递 searchView.getQuery().toString() 数据来捆绑并在您的片段中获取此字符串

searchView.getQuery() // will return data

然后您可以在片段搜索视图中再次设置此数据

searchView.setQuery(string)

我认为您真正想要发送的是搜索视图中的查询。

这就是你应该做的

    String query = yourSearchView.getQuery().toString();
    Bundle bundle = new Bundle();
    bundle.putString("searcObject",query);