Я хочу, чтобы в моем приложении были настраиваемые языковые параметры.
Итак, в onCreate своей деятельности я вызываю Resources.updateConfiguration с новым языковым стандартом.
Однако после onCreate (в какой-то момент я не могу найти его, когда), языковой стандарт устанавливается обратно на языковой стандарт по умолчанию.
В приведенном ниже примере кода строки, показанные в основном макете (как завышено с помощью setContentView), показываютверсия на языке «in», НО, когда я нажимаю кнопку меню, при которой вызывается onCreateMenu, строки берутся из «en» (по умолчанию) локали.
В журнале это показано:
18337 oncreate D { scale=1.0 imsi=525/1 loc=intouch=3 keys=1/1/2 nav=3/1 orien=1 layout=34 uiMode=17 seq=143}
30430 ActivityManager I Displayed activity yuku.coba.locale/.CobaLocaleActivity: 266 ms (total 266 ms)
18337 KeyCharacterMap W No keyboard for id 65540
18337 KeyCharacterMap W Using default keymap: /system/usr/keychars/qwerty.kcm.bin
18337 onmenu D { scale=1.0 imsi=525/1 loc=en_GB touch=3 keys=1/1/2 nav=3/1 orien=1 layout=34 uiMode=17 seq=143}
Между "oncreate" и "onmenu", язык волшебным образом меняется.
Пожалуйста, помогите, я безуспешно возился с этим.
Фрагмент кода:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Configuration c = new Configuration();
c.locale = new Locale("in");
getResources().updateConfiguration(c, null);
setContentView(R.layout.main);
Log.d("oncreate", getResources().getConfiguration().toString());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
Log.d("onmenu", getResources().getConfiguration().toString());
new MenuInflater(this).inflate(R.menu.utama, menu);
return true;
}