Передача данных в фрагмент

175
22 марта 2018, 08:27

Классика учит, что активность не должна напрямую взаимодействовать с методами и переменными фрагмента. Только через интерфейсы. При изучении данной темы обратил внимание, что передача данных из активности в фрагмент, осуществляемая через Bandle, ссылается непосредственно на поле фрагмента в активности. Насколько это соответствует учению?

@Override
public void interface1(String string) {
    Fragment fragment = new Fragment2();
    FragmentManager fm = getFragmentManager();
    Bundle bundle = new Bundle();
    bundle.putString(Fragment2.KEY, string); //Fragment2.KEY - поле фрагмента
    fragment.setArguments(bundle);
    fm.beginTransaction().add(R.id.fragmentContainer2, fragment).commit();
}
Answer 1

Это стандартный способ передачи аргументов. Можно сделать интерфейс в котором будут константы для ключей бандла.

Answer 2

Я так понимаю, суть того подхода, который вы прочитали в книжках, нацелен на защиту данных в полях объектов от очистки, которая может происходить в Андроиде при множестве обстоятельств. И любое значение, которое было инициализировано в объекте (Activity), не застрахованно от пропажи в момент, когда к нему обратятся из другого элемента приложения (Fragment). А в вашем примере задействован только static ключ-идентификатор, который никуда не денется, сколько бы приложение ни сворачивали-разворачивали

READ ALSO
Как в андроиде JAVA эмулировать webview iframe request

Как в андроиде JAVA эмулировать webview iframe request

Как в андроиде JAVA эмулировать webview iframe request чтобы сайт к которому обращались думал что это iframe Меняю Referer сайт все равно как то определяет...

142
Запись и чтение из файла в java

Запись и чтение из файла в java

Есть int[] массив, в нём такие целые числа: 18 3 34 35 8 0 22 10, как записать это в файлtxt и считать чтобы получить не 1 8 3 3 4 3 5 8 и т

171
В android tv java.util.Map не работает?

В android tv java.util.Map не работает?

В android tv подключил компонент в приложение webview и при серфинге страниц в вебвью не передаются никаким образом http_referer не в ручную не просто как...

152
Как подключить картинку через <img>?

Как подключить картинку через <img>?

Мне аж стыдно такое спрашиватьНе получается подключить картинку ( Что я уже только не писал в <img src=""> Может кто подскажет

185