2016-04-14 11 views
1

Ich habe ein SearchView-Objekt. Ich möchte an das Fragment (MyFragment.java) von MainActivity senden.So senden Sie ein SearchView-Objekt innerhalb des Bündels an Fragment von Aktivität

Ich verwende setArguments() Methode. Aber ich konnte searchView Objekt nicht bündeln.

Dies ist mein Code.

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

glauben Sie wirklich, dass das, was Sie tun möglich ist ?? –

+0

Ich weiß nicht, ob das möglich oder unmöglich ist. Ich bin hier, um das zu lernen. – umon

+0

Wenn das der Fall ist, dann ist es nicht möglich, dass Sie das Ansichtsobjekt auf keine Weise von einer Aktivität zu einer anderen senden können. Sie können nur Werte in Bezug auf diese Ansicht wie Text, Position usw. setzen. –

Antwort

0

Dies ist nicht möglich, da Ansichten nicht parzellierbar/serialisierbar sind. Bitte beachten Sie this Frage für eine vollständige Erklärung

+0

hmm .. danke bro. Ich habe verstanden. Nun, gibt es eine Möglichkeit, ein Ansichtsobjekt an ein Fragment zu senden? – umon

+0

Sie könnten die Ansicht über den Konstruktor in das Fragment übergeben oder eine Setter-Methode verwenden. Wenn Sie mit der Ansicht aus dem Fragment interagieren möchten, sollten Sie besser eine Passback-Schnittstelle implementieren. –

0

Sie müssen passieren searchView.getQuery(). toString() Daten zu bündeln und nutzen Sie diesen String in Ihrem Fragment

searchView.getQuery() // will return data 

Dann Sie diese Daten festlegen können wieder in Ihr Fragment searchView with

searchView.setQuery(string) 
0

Ich denke, was Sie wirklich senden möchten, ist die Abfrage in der Searchview.

So ist dies, wie Sie tun sollten, es

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

Ich möchte keine Zeichenfolge senden .. Ich möchte ein Objekt senden. – umon