Может кто-нибудь может сказать мне, что я делаю неправильно? Я держу пари, что я пропустил одну маленькую вещь. Я просмотрел сайт разработчика, и я прочитал несколько уроков, и я просто не вижу, что я сделал неправильно.Simple ListPreference не работает. Есть идеи?
Я пытаюсь использовать ListPreference, чтобы решить, какой звук играть при нажатии кнопки.
У меня есть это на вершине:
public String greensound;
Вот мой OnClick код:
case R.id.green:
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(this);
greensound = prefs.getString("greensound", "gsone");
if (greensound == "gsone") {
mSoundManager.playSound(1);
} else if (greensound == "gstwo") {
mSoundManager.playSound(2);
} else if (greensound == "gsthree") {
mSoundManager.playSound(3);
}
break;
Вот мой XML:
<ListPreference
android:title="Geen Button"
android:key="greensound"
android:summary="Select sound for the Green Button"
android:entries="@array/green_list"
android:entryValues="@array/green_list_values"
android:defaultValue="gsone">
</ListPreference>
вот мой Settings.java:
package com.my.app;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class Settings extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
и вот мой массива, если это поможет на всех:
//This is the one I want to display to the user
<string-array name="green_list">
<item>Sound One</item>
<item>Sound Two</item>
<item>Sound Three</item>
<item>Sound Four</item>
<item>Sound Five</item>
</string-array>
<string-array name="green_list_values">
<item>gsone</item>
<item>gstwo</item>
<item>gsthree</item>
<item>gsfour</item>
<item>gsfive</item>
</string-array>
изменения: добавили LogCat любопытное, что выглядело, возможно, связаны между собой.
08-27 01:52:07.738: WARN/Resources(6846): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f090000}
08-27 01:52:07.748: WARN/Resources(6846): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f090000}
08-27 01:52:07.758: WARN/Resources(6846): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f090000}
DDMS> File Explorer> Данные> Данные> PACKAGENAME> SharedPreferences Это то, что было там:
com.my.app_preferences.xml:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="redsound">rsone</string>
<string name="greensound">gsone</string>
</map>
_has_set_default_values.xml:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="_has_set_default_values" value="true" />
</map>
Это все смущает меня больше, потому что ... Это выглядит s like greedsound делает infact = gsone так .... Я не понимаю, что не так, что он даже не воспроизводит звук по умолчанию. и да, я проверил
mSoundManager.playSound(1);
mSoundManager.playSound(2);
mSoundManager.playSound(3);
все без другого кода, и они отлично работают. Я не уверен, что такое работа
Благодарим за попытку, но, к сожалению, это не работает. Я обновил свой первый пост с помощью всего кода, который я использую в настоящее время. Что-то нужно добавить в Settings.java? Например, я знаю, что есть некоторый код, который мне нужно добавить в Settings.java, когда я использую флажки. – brybam
Выяснил это - ознакомьтесь с моим обновленным ответом! Извините, я не мог сразу это увидеть. Теперь это определенно должно работать! –
Он все еще не работает. Я снова обновил свой пост тем, что я использую. Я также попробовал com.my.app_Settings, так как это имя моего pref java-файла. Вы уверены, что ничего не происходит в Settings.java? – brybam