如何将 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);
我有一个 SearchView 对象。我想从 MainActivity
.
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);