我想立即在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.
}
}
答案 0 :(得分:1)
1)退出应用程序和重启之间你可以保存这样的选择: 创建应用程序类
public class MutawaApplication extends Application {
(http://developer.android.com/reference/android/app/Application.html) 在AndroidManifest.xml中注册它
android:name=".MyApplication"
在此类中使用SharedCreferences的onCreate读取语言。在app中更改lang时将其保存到SharedPreferences。
2)在您的活动中检查onResume上的区域设置,如果需要make replaceContentView()