我刚刚完成了我的第一个 android 应用程序,但我还有一个小问题要解决:我用两种语言制作了我的应用程序;如果我的手机设置为以法语运行,则应用程序以法语显示,如果手机设置为英语,则以英语运行问题是我设置了一个共享偏好值,让应用程序的用户选择他的首选语言手动,不幸的是,这不起作用。
这是我的共同偏好:
<ListPreference
android:defaultValue="English"
android:entries="@array/Languages"
android:entryValues="@array/LanguagesValues"
android:key="language"
android:summary="@string/Define_the_default_language"
android:title="@string/Language" />
这就是我尝试实现的方式:
SharedPreferences pref = PreferenceManager
.getDefaultSharedPreferences(this);
lan = pref.getString("language", null);
Log.e("langues", lan);
SharedPreferences prefs = this.getSharedPreferences("language", 0);
listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs,
String key) {
prefs.registerOnSharedPreferenceChangeListener(listener);
if (lan.equals("FRENSH")) {
setLocale("FRENSH");
System.out.println("frensh");
SetLocal 活动:
public void setLocale(String lang) {
myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
Log.e("", "" + myLocale);
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(this, Setting.class);
startActivity(refresh);
}
我该如何解决?