Пытаюсь сделать так, чтобы при первом входе в приложение пользователь получал меню выбора языка, однако оно почему-то не работает
Вот мой intro_slide_language_selection.xml
После этого я добавил в свой IntroSliderActivity.java
layouts = new int[]{ R.layout.intro_slide_language_selection, // это селектор языка R.layout.intro_slide_1, R.layout.intro_slide_2, R.layout.intro_slide_3, R.layout.intro_slide_4, }; затем я добавил
// Дохватите дугмад за выбор езика Просмотр языкаSelectionLayout = LayoutInflater.from(this).inflate(R.layout.intro_slide_language_selection, null); Кнопка btnSerbian = LanguageSelectionLayout.findViewById(R.id.btnSerbian); Кнопка btnРусский = LanguageSelectionLayout.findViewById(R.id.btnРусский); Кнопка btnHungarian = LanguageSelectionLayout.findViewById(R.id.btnHungarian); // Поставьте OnClickListener для свако дугме btnSerbian.setOnClickListener(новый View.OnClickListener() { @Override общественная недействительность onClick (Просмотр v) { // Поставьте ежик на сербский LocaleHelper.setAppLocale0(getApplicationContext(), "en"); // Перезапустите активность, как бы вы применили промену jezika перезапустить Активность(); } }); btnrussian.setOnClickListener(new View.OnClickListener() { @Override общественная недействительность onClick (Просмотр v) { // Поставьте ежик на русский LocaleHelper.setAppLocale0(getApplicationContext(), "ru"); // Перезапустите активность, как бы вы применили промену jezika перезапустить Активность(); } }); btnHungarian.setOnClickListener(новый View.OnClickListener() { @Override общественная недействительность onClick (Просмотр v) { // Поставьте jezik на mađarski LocaleHelper.setAppLocale0(getApplicationContext(), "ху"); // Перезапустите активность, как бы вы применили промену jezika перезапустить Активность(); } }); И я сделал перезапуск
Private void restartActivity() { // Перезапускаем третью активность Намерение намерение = getIntent(); заканчивать(); startActivity (намерение); } Это часть настройки, которая работает без проблем и может быть полезна (это еще одна часть настроек)
частный недействительный setupLanguageSelector () { ListPreferencechangeLanguage = (ListPreference) findPreference("changeLanguage"); ChangeLanguage.setEnabled(истина); ChangeLanguage.setShouldDisableView(истина); SharedPreferences SharedPref = PreferenceManager.getDefaultSharedPreferences(это); String defaultLanguageCode =sharedPref.getString("changeLanguage", "en"); String defaultLanguageTitle =sharedPref.getString("changeLanguage", "Английский"); String storeLanguages = "en:English,ru:Русский,es:Испанский,hr:Hrvatski"; CharSequence[] splinted = storeLanguages.split(","); CharSequence[] LanguageEntries = новый CharSequence[splinted.length]; CharSequence[] LanguageEntryValues = новый CharSequence[splinted.length]; интервал я = 0; for (Элемент CharSequence: StoreLanguages.split(",")) { CharSequence[] язык = item.toString().split(":"); LanguageEntries = Language[1] + " (" + язык[0] + ")"; LanguageEntryValues = язык[0]; если (defaultLanguageCode.equals(language[0])) { defaultLanguageTitle = язык[1].toString(); } я++; } ChangeLanguage.setEntries(languageEntries); ChangeLanguage.setEntryValues(languageEntryValues); ChangeLanguage.setSummary(defaultLanguageTitle); ChangeLanguage.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange (предпочтение, Object newValue) { //Изменяем настройки языка LocaleHelper.setAppLocale0(getApplicationContext(), newValue.toString()); //Необходимо воссоздать активность, чтобы отразить изменения в пользовательском интерфейсе. AlertBottomSheetDialog mAlertBottomSheetDialog = AlertBottomSheetDialog.newInstance(SettingActivity.this); mAlertBottomSheetDialog.setlisteners (новый AlertBottomSheetDialog.Listeners () { @Override общественная недействительность onConfirm() { закончитьАффинити(); Намерение намерение = новое намерение (getApplicationContext(), SplashActivity.class); startActivity (намерение); } @Override общественная недействительность onDismiss() { } }); mAlertBottomSheetDialog.titleView().setText(getString(R.string.change_language)); mAlertBottomSheetDialog.bodyView().setText(getString(R.string.to_apply_languageMessage)); mAlertBottomSheetDialog.show(); вернуть истину; } } ); }
Я попробовал все, что знал
Мобильная версия