У меня есть этот раздел настроек, где я разрешаю пользователям изменять отображаемые в приложении языки. Когда пользователь выбирает другой язык, активность перезагружается, чтобы можно было изменить язык. Но проблема в том, что когда пользователь щелкает обратно сразу после смены языка, язык, отображаемый в фоновом режиме, остается прежним. Итак, мой вопрос: что мне делать, чтобы применить изменение языка, когда я вернусь к какой-либо деятельности на фоне? Я полагаю, что я должен что-то сделать, чтобы обнаружить изменение в методе onResume
, но я не уверен, что это такое. Если у Вас есть предложения, пожалуйста, дайте мне знать. Спасибо.Android - Изменение языка при нажатии
ответ
После нескольких попыток я нашел решение своей проблемы. На моем onCreate
методе, я получаю SharedPreferences
, который содержит значение текущего языка, и получить текущий язык:
SharedPrefrences languagepref = getSharedPreferences("language",MODE_PRIVATE);
String language = languagepref.getString("languageToLoad", Locale.getDefault().getDisplayLanguage());
Тогда в моем onResume
методы я присвоить значение выше упомянутое переменной language
на локальный переменной и обновить значение language
. Тогда я сравниваю эти две переменные - если они разные, я уничтожу текущую деятельность и начать другую:
@Override
public void onResume(){
super.onResume();
String oldLanguage = language;
language = languagepref.getString("languageToLoad", Locale.getDefault().getDisplayLanguage());
if (!oldLanguage.equals(language)){
finish();
startActivity(getIntent());
}
}
И вуаля, что сделал трюк!
Я бы предложил использовать SharedPreferences. Вы можете сохранить ключ lang с соответствующим значением там и обновить его, когда это необходимо. В методах onResume() вы можете получить значение lang и затем заполнить представления в соответствии с сохраненным значением.
Это основа, в которой вы должны идти.
Спасибо, я пробовал точно так, как вы мне сказали, но язык все еще не работает. т изменения фоновой активности. –
Где вы создаете свои мнения и задаете свой текст? –
Вы пробовали перезапустить Activity после завершения изменения?
Вы можете просто использовать
finish();
startActivity(getIntent());
обновить активность всякий раз, когда он обнаруживает изменения предпочтений.
Предполагаю, вы хотите обновить активность в 'onResume'? Ну, я пробовал это, и деятельность вряд ли может начаться из-за бесконечных циклов финиша и начала. –
Если у вас нет сохраненных переменных, вы можете использовать 'onCreate (null);'. Это также должно возобновить вашу деятельность. – Traxex1909
- 1. Изменение языка при нажатии кнопки: Android
- 2. Изменение языка клавиатуры Android на хинди при нажатии кнопки
- 3. Android: изменение языка программно
- 4. Динамическое изменение языка Android
- 5. Android: изменение языка активности
- 6. Изменение языка приложений Android
- 7. Android CheckedTextView - изменение статуса проверки при нажатии
- 8. Изменение изображения на Android при каждом нажатии
- 9. Android: Изменение цвета фона ClickableSpan при нажатии
- 10. Изменение двух изображений при нажатии кнопки (Android)
- 11. Изменение текста TextView при нажатии кнопки (Android)
- 12. Изменение изображения при нажатии
- 13. Изменение изображения при нажатии
- 14. Изменение текста при нажатии
- 15. Изменение изображения при нажатии
- 16. Изменение цвета кнопки при нажатии
- 17. Изменение цвета кнопки при нажатии
- 18. Изменение фрагмента при нажатии кнопки
- 19. (Android) Изменение языка не работает должным образом
- 20. Изменение JLists при нажатии JRadioButton
- 21. изменение цвета кнопки при нажатии
- 22. Изменение указателя мыши при нажатии
- 23. Изменение текста кнопки при нажатии
- 24. Изменение стиля слова при нажатии
- 25. Изменение содержимого кнопки при нажатии?
- 26. Изменение Модального изображения при нажатии
- 27. Изменение панели при нажатии кнопки
- 28. Изменение цвета якоря при нажатии
- 29. Изменение цвета элемента при нажатии
- 30. Изменение стиля кнопки при нажатии
Слушайте ** onResume ** метод в ActivityDestination или ** onBackPressed ** в ActivitySource. –
, если вы используете функцию finish(), чтобы вернуться к предыдущему действию попытайтесь использовать намерение вместо этого, чтобы обновить предыдущую активность с помощью нового языка. – user1283633