语言改变后刷新android应用程序

时间:2013-09-19 03:37:01

标签: android locale multilingual

我正在开发一个支持两种语言的应用程序。有一个ToggleButton来改变语言。我使用以下代码来改变语言环境,一切正常。

Resources res = viewDashBoardScreen.getResources(
// Change locale settings in the app.
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.locale = new Locale("es".toLowerCase());
res.updateConfiguration(conf, dm);

问题:语言更改后如何刷新整个应用程序?

目前我正在重新启动更改语言的活动。它工作正常,但这是一个好习惯吗?或者是否有任何其他方式在应用程序中应用语言更改。

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

我可以把这个函数称为togal按钮改变它为我工作

private void setLocale(String localeCode){
    AppLog.logString(TAG+"set location function: "+localeCode);
    locale = new Locale(localeCode);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    getApplicationContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    UserDetail.this.getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    onCreate(null);
}

on toggel buttong改变呼叫功能这样:

setLocale("en-us");// pass languen in whicy u want to translate 
setLocale("ar",savedInstanceStat);