169 похожих чатов

Всем привет. Кто как реализовывал мультиязычность в приложениях ? Есть

ли способ без пересоздания активити ?

9 ответов

10 просмотров

В гугле много статей про это

Faridun- Автор вопроса

Все что я пока что видел было связано с пересозданием активити. Киньте линк если видели какой-то другой способ :)

Если вопрос про переключение языка - сначала меняю язык в конфигурации: 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 или переоткрываю текущую.

Faridun- Автор вопроса

А как переоткрыть ?

Я делал костыльно - закрывал текущую и через Intent открывал его заново. Воможно есть и другие варианты. Доеду до работы - гляну. Напиши в личку - скину код из текущего проекта.

Faridun- Автор вопроса

Просто у меня там в activity есть viewPager2 у которого фрагменты с аргументами в конструкторе, и приложение крашится из-за этого

Ну тогда придётся пересоздавать заново, передавая туда все необходимые для этого параметры. В моём проекте (сейчас нашёл код) - язык меняется на экране профиля, и после изменения языка в конфигурации заново открываю профиль, вот так: Intent intent = new Intent(context, ProfileActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);

Faridun- Автор вопроса

у меня тоже в профиле, но у меня профиль это фрагмент в bottom navigation. Как я могу перейти на этот фрагмент после создания активити ?

А если при пересоздании Activity передать туда параметр с id нужного фрагмента в bottom navigation, а потом переключить его принудильно?

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта