Я пытаюсь изменить цвет фона активности, используя listPreference. Я написал некоторый код, но он идет прямо к желтому.
Вот массивы строк:
<string-array name="backgroundColors">
<item name="1">Red</item>
<item name="2">Green</item>
<item name="3">Blue</item>
<item name="4">Yellow</item>
</string-array>
<string-array name="backgroundColorEntries">
<item name="1">#FF0000</item>
<item name="2">#00FF00</item>
<item name="3">#0000FF</item>
<item name="4">#FFFF00</item>
</string-array>
Вот где я сделал список в файле XML:
<ListPreference
android:key="prefSetBackground"
android:entries="@array/backgroundColors"
android:summary="Set the background color of the main page."
android:entryValues="@array/backgroundColorEntries"
android:title="@string/pref_1" />
И, наконец, вот часть Java:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
SharedPreferences getPrefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
String background_chooser = getPrefs
.getString("prefSetBackground", "0");
View view = findViewById(R.id.main_layout);
if (background_chooser.equals("1")) {
view.setBackgroundColor(Color.RED);
} else if (background_chooser.equals("2")) {
view.setBackgroundColor(Color.GREEN);
} else if (background_chooser.equals("3")) {
view.setBackgroundColor(Color.BLUE);
} else {
view.setBackgroundColor(Color.YELLOW);
}
super.onWindowFocusChanged(hasFocus);
}
Я думаю, что я делаю что-то неправильно здесь, но я не уверен, что. Я новичок в использовании ListPreferences, поэтому, пожалуйста, потерпите меня.
Заранее спасибо.
РЕДАКТИРОВАТЬ: Из того, что я могу сказать, когда приложение работает на моем телефоне, по умолчанию используется последняя часть, что означает, что красный, синий и зеленый возвращают false. Цвет фона становится желтым. Когда я меняю настройки, ничего не происходит.
РЕДАКТИРОВАТЬ № 2: кажется, что listpreference и Java не связаны друг с другом. Я не знаю, что я делаю неправильно.