ли способ без пересоздания активити ?
В гугле много статей про это
Все что я пока что видел было связано с пересозданием активити. Киньте линк если видели какой-то другой способ :)
Если вопрос про переключение языка - сначала меняю язык в конфигурации: public static void setLanguage(Context context, String language) { Locale locale = new Locale(language); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics()); } А потом перенааравлвю на другую Activity или переоткрываю текущую.
А как переоткрыть ?
Я делал костыльно - закрывал текущую и через Intent открывал его заново. Воможно есть и другие варианты. Доеду до работы - гляну. Напиши в личку - скину код из текущего проекта.
Просто у меня там в activity есть viewPager2 у которого фрагменты с аргументами в конструкторе, и приложение крашится из-за этого
Ну тогда придётся пересоздавать заново, передавая туда все необходимые для этого параметры. В моём проекте (сейчас нашёл код) - язык меняется на экране профиля, и после изменения языка в конфигурации заново открываю профиль, вот так: Intent intent = new Intent(context, ProfileActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
у меня тоже в профиле, но у меня профиль это фрагмент в bottom navigation. Как я могу перейти на этот фрагмент после создания активити ?
А если при пересоздании Activity передать туда параметр с id нужного фрагмента в bottom navigation, а потом переключить его принудильно?
Обсуждают сегодня