2016-04-14 87 views
1

我有一个SearchView对象。我想从MainActivity发送到Fragment(MyFragment.java)。如何将Bundle中的SearchView对象发送到活动的片段

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

你真的想,你在做什么是可能的? –

+0

我不知道这是可能的或不可能的..我在这里学习。 – umon

+0

如果是这种情况,那么无法以任何方式将视图对象从一个活动发送到另一个活动。您只能设置与该视图相关的值,如文本,位置等。 –

回答

0

这是不可能的,因为视图不是可以parcelable/serializable。请参阅this问题更全面的解释

+0

嗯..感谢兄弟。我明白了。 好吧,有没有办法将视图对象发送到片段? – umon

+0

您可以通过构造函数将视图传递给片段,也可以使用setter方法。如果你想与片段中的视图进行交互,你会更好地实现一个回传界面。 –

0

你需要传递searchView.getQuery()。的toString()数据包中,在您的片段得到这个字符串

searchView.getQuery() // will return data 

然后你可以再设置此数据你的片段searchView惠特

searchView.setQuery(string) 
0

我觉得你真的想发送的是在Searchview内查询。

所以这是你应该怎么做

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

我不想发送字符串.. 我想发送一个对象。 – umon

相关问题