0

コードに不足がないか確認できますか?

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>

すべての助けは大歓迎です。

本当に、エマド

4

1 に答える 1

1

==は実際の値ではなく参照を比較するため、==の代わりに.equalsを使用してください

お気に入り

if (stringChimeVolume.equals( "2")) instead of 


if (stringChimeVolume== "2")
于 2011-09-08T21:13:01.860 に答える