Классика учит, что активность не должна напрямую взаимодействовать с методами и переменными фрагмента. Только через интерфейсы. При изучении данной темы обратил внимание, что передача данных из активности в фрагмент, осуществляемая через 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();
}
Это стандартный способ передачи аргументов. Можно сделать интерфейс в котором будут константы для ключей бандла.
Я так понимаю, суть того подхода, который вы прочитали в книжках, нацелен на защиту данных в полях объектов от очистки, которая может происходить в Андроиде при множестве обстоятельств. И любое значение, которое было инициализировано в объекте (Activity), не застрахованно от пропажи в момент, когда к нему обратятся из другого элемента приложения (Fragment). А в вашем примере задействован только static ключ-идентификатор, который никуда не денется, сколько бы приложение ни сворачивали-разворачивали
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники