В моем приложении для Android я хочу динамически менять язык по умолчанию. Я реализовал этот метод:Android - динамически меняю язык
public void changeLanguage(String lang) { //lang="it" or "en" for example
myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Handler handler = new Handler();
handler.postDelayed(new Runnable()
{
@Override
public void run()
{
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
{
finish();
startActivity(getIntent());
} else recreate();
}
}, 1);
}
и в манифесте я добавил к моему MainActivity этой строки:
android:configChanges="locale|orientation"
я также попытался это:
android:configChanges="locale|layoutDirection"
Это решение работает хорошо, но как только экран поворачивается, возвращается к настройке по умолчанию и язык восстанавливается.
Как я могу решить эту проблему?
возможно дубликат [Изменение локали в самом приложении] (http://stackoverflow.com/questions/2264874/changing-locale-within-the-app-itself) – Lamorak
Я уже пробовал решение, которое они предоставляют на этом посту, и, как я уже сказал выше, не работает. –