2016-04-14 3 views
1

У меня есть объект SearchView. Я хочу отправить в Фрагмент (MyFragment.java) от MainActivity.Как отправить объект SearchView в Bundle to Fragment из Activity

Я использую 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

Это невозможно, так как виды не являются обобщаемыми и сериализуемыми. Пожалуйста, смотрите this вопрос для полного объяснения

+0

hmm .. thanks bro. я понял. Ну, есть ли способ отправить объект просмотра фрагменту? – umon

+0

Вы можете передать представление в фрагмент через конструктор или использовать метод setter. Если вы хотите взаимодействовать с представлением из фрагмента, вам лучше реализовать интерфейс обратного вызова. –

0

Вам необходимо пройти searchView.getQuery(). ToString() данные для объединения и получить эту строку в вашем фрагменте

searchView.getQuery() // will return data 

Затем вы можете установить эти данные снова ваш фрагмент searchView whit

searchView.setQuery(string) 
0

Я думаю, что вы действительно хотите отправить запрос в Searchview.

Так это, как вы должны сделать это

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

Я не хочу отправлять строку .. Я хочу отправить объект. – umon

Смежные вопросы