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

时间:2016-04-14 12:33:04

标签: android android-fragments bundle searchview

我有一个SearchView对象。我想从MyFragment.java发送给片段(MainActivity)。

我正在使用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();

3 个答案:

答案 0 :(得分:0)

这是不可能的,因为视图不是可分区/可序列化的。有关完整说明,请参阅this问题

答案 1 :(得分:0)

您需要将searchView.getQuery()。toString()数据传递给bundle并在片段中获取此String

searchView.getQuery() // will return data

然后,您可以在片段searchView whit

中再次设置此数据
searchView.setQuery(string)

答案 2 :(得分:0)

我认为您真正想要发送的是Searchview中的查询。

这就是你应该怎么做的

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