В методе onCreateView()
моего FirstFragment у меня есть следующие элементы:
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle bundle) {
initSearchView();
String selectedItem = search.getText().toString();
Log.d(TAG, "onCreateView " + selectedItem); //Always empty
}
Как видите, я вызываю метод initSearchView()
, который выглядит следующим образом:
private void initSearchView() {
SearchView searchView = rootView.findViewById(R.id.search);
search = searchView.findViewById(androidx.appcompat.R.id.search_src_text);
search.setOnItemClickListener((adapterView, view, position, id) -> {
Item Item = (Item) adapterView.getItemAtPosition(position);
search.setText(item.getItemName()); //Set item name
goToItemFragment(item.getItemName());
});
}
Как видите, после выбора элемента я назначил имя этого элемента для объекта search
. Это работает нормально, так как я вижу, что имя элемента помещено в search .
Вот метод, который я использую для перехода к SecondFragment:
private void goToISecondFragment(String itemName) {
ActionFirstFragmentToSecondFragment action = actionFirstFragmentToSecondFragment();
action.setItemName(itemName);
Navigation.findNavController(rootView).navigate(action);
}
Проблема возникает, когда я возвращаюсь из SecondFragment в FirstFragment. Даже если я вижу выбранное имя элемента в поиске , когда начинается фрагмент, этот оператор журнала всегда пуст, то есть он не видит этот текст в поиске.
Какможно получить этот видимый текст из поиска, когда я вернусь из SecondFragment в FirstFragment? Спасибо