コードに不足がないか確認できますか?
ifステートメントでlistpreferenceの値を使用しようとしていますが、ifステートメントがlistpreferenceに格納されている値に応答しません。
ここで私が使用しているコーディングは次のとおりです。
String stringChimeVolume = clockSettings.getString("ChimeVolume",
"Default");
Toast.makeText(context, "The preference is: " + stringChimeVolume,
Toast.LENGTH_SHORT).show();
if (stringChimeVolume == "2") {
manager.setStreamVolume(AudioManager.STREAM_MUSIC,
2, AudioManager.FLAG_VIBRATE);
Toast.makeText(context, "The volume is at 2: ",
Toast.LENGTH_SHORT).show();
} else if (stringChimeVolume == "3") {
Toast.makeText(context, "The volume is at 3: ",
Toast.LENGTH_SHORT).show();
manager.setStreamVolume(AudioManager.STREAM_MUSIC,
7, AudioManager.FLAG_VIBRATE);
}
else if (stringChimeVolume == "4") {
manager.setStreamVolume(AudioManager.STREAM_MUSIC,
15, AudioManager.FLAG_VIBRATE);
}
最初のToastステートメントを使用して、値が存在することを確認しました。値は2ですが、「2」のifステートメントのトーストが実行されていません。
これが私がlistpreferenceに使用したarrays.xmlです:
<string-array name="chimeVolumeLabels">
<item>Use System Volume</item>
<item>Emad</item>
<item>Medium</item>
<item>Loud</item>
</string-array>
<string-array name="chimeVolumeValues">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
これは、listpreferenceを含むsettings.xmlです。
<PreferenceCategory android:title="Media:">
<CheckBoxPreference android:key="ChimeWhenMusicIsPlaying"
android:title="@string/ChimeWhenMusicIsPlayingTitle" android:summary="@string/ChimeWhenMusicIsPlayingSummary"
android:defaultValue="false" />
<ListPreference android:title="Chime Volume"
android:key="ChimeVolume" android:summary="Select volume for the chiming sound."
android:entries="@array/chimeVolumeLabels" android:entryValues="@array/chimeVolumeValues"
android:defaultValue="1" />
</PreferenceCategory>
すべての助けは大歓迎です。
本当に、エマド