こことグーグルで答えを探してみましたが、なかなか遠くまで行けませんでした。
私はlistPreference
Androidプラットフォームで、ユーザーがテキストの色を選択できるようにしようとしています。現在、デフォルト値を返すだけで、if/elseステートメントが機能しない理由がよくわかりません。
prefs.xml:
<ListPreference
android:title="textcolorpreference"
android:key="list1"
android:summary="Text Color"
android:entries="@array/list"
android:entryValues="@array/lValues"
/>
array.xml:
<string-array name="list">
<item>Red</item>
<item>Green</item>
<item>Blue</item>
<item>Yellow</item>
</string-array>
<string-array name="lValues">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
Java:
SharedPreferences getPrefs =
PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String values = getPrefs.getString("list", "2");
if(values.contentEquals("1")){
tp.setColor(Color.RED);
} else if(values.contentEquals("2")){
tp.setColor(Color.GREEN);
} else if(values.contentEquals("3")){
tp.setColor(Color.BLUE);
}else if(values.contentEquals("4")){
tp.setColor(Color.YELLOW);
}
現在、リスト設定のデフォルト値のみが機能します。たとえば、listPreferenceのデフォルト値String values = getPrefs.getString("list", "2")
を取得color.GREEN
すると、設定変更リスナーを追加する必要があると思いますが、現在は実装できません。
私はあなたたちが提供することができるどんな助けにも非常に感謝するでしょう!