October 20, 2009

Change Language

在android application裡面,如果要在程式裡面切換多國語系,可以參考底下這段code。
//change language preference
Resources aRes = getResources();
Configuration aConf = aRes.getConfiguration();
aConf.locale = iLocale;
DisplayMetrics dm = aRes.getDisplayMetrics();
aRes.updateConfiguration(aConf, dm);

不過這樣改過之後,在目前這個activity某些resource可能會沒有改過去,變成要重開activity才有作用。
此時可以在底下加入final Window win = getWindow();
win.onConfigurationChanged(aConf);

通知windowmanager configuration changed,應該就可以馬上改了。
不過這個作法是看log猜出來的,不曉得算不算正規。
如果有更好的作法歡迎討論。

0 Comments: