Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将捆绑包中的SearchView对象发送到活动中的片段_Android_Android Fragments_Bundle_Searchview - Fatal编程技术网

Android 如何将捆绑包中的SearchView对象发送到活动中的片段

Android 如何将捆绑包中的SearchView对象发送到活动中的片段,android,android-fragments,bundle,searchview,Android,Android Fragments,Bundle,Searchview,我有一个SearchView对象。我想从MainActivity发送到Fragment(MyFragment.java) 我正在使用setArguments()方法。但是,我无法将searchView对象打包 这是我的密码 searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); Bundle bundle = new Bundle(); bundle.putParcelable("searcObject

我有一个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();

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

这是不可能的,因为视图不可打包/序列化。有关完整解释,请参见问题

您需要将searchView.getQuery().toString()数据传递到bundle并在片段中获取此字符串

searchView.getQuery() // will return data
然后,您可以在片段搜索视图中再次设置此数据

searchView.setQuery(string)

您需要将searchView.getQuery().toString()数据传递给bundle并在片段中获取该字符串

searchView.getQuery() // will return data
然后,您可以在片段搜索视图中再次设置此数据

searchView.setQuery(string)

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

所以你应该这样做

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

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

所以你应该这样做

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

你真的认为你所做的是可能的吗?我不知道那是可能的还是不可能的。。我来这里是为了了解这一点。如果是这样的话,那么就不可能通过任何方式将视图对象从一个活动发送到另一个活动。你只能设置与该视图相关的值,如文本、位置等。你真的认为你所做的是可能的吗?我不知道这是可能的还是不可能的。。我来这里是为了了解这一点。如果是这样的话,那么就不可能通过任何方式将视图对象从一个活动发送到另一个活动。您只能设置与该视图相关的值,如文本、位置等。我不想发送字符串。。我想发送一个对象。我不想发送字符串。。我想发送一个对象。嗯。。谢谢兄弟。我明白了。那么,有没有办法将视图对象发送到片段?您可以通过构造函数或使用setter方法将视图传递到片段中。如果您想从片段中与视图交互,最好实现一个passback接口。。谢谢兄弟。我明白了。那么,有没有办法将视图对象发送到片段?您可以通过构造函数或使用setter方法将视图传递到片段中。如果希望与片段中的视图交互,最好实现一个回传接口。