アプリの設定を多言語対応にしたいです。言語ごとに設定項目の値が異なります。私は文字列配列を持っています:
<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")
毎回異なる値を取得します。私の質問は、1 つの項目の下にあるすべての文字列に対して 1 つの値を持つ方法です。たとえば、ユーザーが何を選択したかを確認し、その後何らかのアクションを実行したい場合などです。
このような:
if(prefTemUnit==celcius){
setTempUnitToCelc();
}
編集:
今のところ、1つのオプションを考え出しました:
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
String unit=sharedPrefs.getString("prefTempUnit", "Celcius");
String[] stringArray = getResources().getStringArray(R.array.syncTemperature);
if(unit.equals(stringArray[0])){
//mymethod
}
しかし、それが適切なものかどうかはわかりません。