4

可能重复:
在 Android 中以编程方式更改应用程序语言

我想立即更改SettingsActivity.java所有活动中的语言。
并保存此选择(即使我退出应用程序或重新启动手机),无论系统区域设置如何。
我怎样才能做到这一点?

public class MyOnItemSelectedListener implements OnItemSelectedListener {

    public void onItemSelected(AdapterView<?> parent,
        View view, int pos, long id) { 
        switch (pos) {
        case 0:
            Locale locale = new Locale("en");
            Locale.setDefault(locale);
            Configuration config = new Configuration();
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config, getBaseContext()
                    .getResources().getDisplayMetrics());
            break;

        case 1: 
            Locale locale2 = new Locale("de");
            Locale.setDefault(locale2);
            Configuration config2 = new Configuration();
            config2.locale = locale2;
            getBaseContext().getResources().updateConfiguration(config2, getBaseContext()
                    .getResources().getDisplayMetrics()); 
            break;          
        }       
    }

    public void onNothingSelected(AdapterView<?> parent) {
      // Do nothing.
    }
}
4

1 回答 1

2

1)在退出应用程序和重新启动之间,您可以像这样保存选择:创建应用程序类

public class MutawaApplication extends Application {

(http://developer.android.com/reference/android/app/Application.html) 在AndroidManifest.xml中注册

android:name=".MyApplication"

在这个类中 onCreate 从 SharedPreferences 中读取语言。当您在应用程序中更改语言时,将其保存到 SharedPreferences。

2)在您的活动中检查 onResume 上的语言环境,如果需要,请制作replaceContentView()

于 2012-09-25T14:48:06.740 回答