我想編寫一個可以顯示英文或中文的應用程序。我已經準備了2個string.xml,它是value/strings.xml和value-zh-rHK/strings.xml。但我不知道如何通過Android的ListPreference更改語言。如何更改整個android應用程序的語言?
XML /的preferences.xml:
<?xml version="1.0" encoding="utf-8"?>
<SwitchPreference
android:key="pref_nightmode"
android:title="@string/nightmode"
android:defaultValue="false">
</SwitchPreference>
<ListPreference
android:key="pref_lang"
android:title="@string/lang"
android:dialogTitle="Choose Language"
android:entries="@array/lang"
android:entryValues="@array/lang_value"
android:defaultValue="@string/lang_default">
</ListPreference>
和Preferences.java
public class Preferences extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle(drawer_menu[5]);
getFragmentManager().beginTransaction().replace(R.id.content_frame, new MainPreferenceFragment()).commit();
}
public static class MainPreferenceFragment extends PreferenceFragment {
String locale;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
PreferenceManager pm = getPreferenceManager();
ListPreference lang = (ListPreference) pm.findPreference("pref_lang");
if(lang.getValue().equals("English")) {
locale = "en_US";
} else {
locale = "zh_HK";
}
}
}
活動延伸BaseActivity因爲我有一個抽屜菜單在那裏。
可以在Android設置中更改系統的語言。 – Robert
我只想更改應用程序的語言,而不是我的電話 – rascee