我想让我的应用设置支持多语言。设置项目的值在每种语言中会有所不同。我有字符串数组:
<string-array name="syncTemperature">
<item>@string/celcius</item>
<item>@string/fehrenheit</item>
</string-array>
用于:
<ListPreference
android:key="prefTempUnit"
android:entries="@array/syncTemperature"
android:summary="@string/pref_temp_current"
android:entryValues="@array/syncTemperature"
android:title="@string/pref_temperature" />
我什么时候打电话:
String celcius = sharedPrefs.getString("prefTempUnit", "Celcius")
我每次都会得到不同的价值。我的问题是如何为一项下的所有字符串设置一个值。例如,当我想检查用户选择了什么并在之后采取一些行动时。
像这样:
if(prefTemUnit==celcius){
setTempUnitToCelc();
}
编辑:
现在我想出了一个选择:
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
String unit=sharedPrefs.getString("prefTempUnit", "Celcius");
String[] stringArray = getResources().getStringArray(R.array.syncTemperature);
if(unit.equals(stringArray[0])){
//mymethod
}
但我不知道它是否合适。