и решил сделать в настройках выбор языка ... всё сделал но наткнулся на одном:
при изменении языка в настройках изменяется язык и перезагружается приложения ... все работает ... но если менять язык при запуске то не полностью срабатывает ...
Код: Выделить всё
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
load_setting();
ChangeLang(langs);
.........
Код: Выделить всё
public void ChangeLang(String lang){
if (!getBaseContext().getResources().getConfiguration().locale.equals(new Locale(langs)))
{
Log.d("TTest2", "6 "+getBaseContext().getResources().getConfiguration().locale);
Locale myLocale = new Locale(langs);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
Log.d("TTest2", "7 "+getBaseContext().getResources().getConfiguration().locale);
}
}
стандартный язык русский (values)
англиский (values-en)
я вывел в логи текущее состояние локали
Log.d("TTest2", "7 "+getBaseContext().getResources().getConfiguration().locale);
так вот после смены языка в oncreate при выводе состояния локали всё норм выводит en
вывел тоже самое в onstart и onresume язык выводит en
а потом при нажатии клавиши на экране или вызова меню если вывести состояние локали то стоит ru_RU в чём проблема ?
как нормально при запуске приложения применять локаль ... ?