Я использую AndEngine для создания живых обоев и SharedPreferences для настроек.
Вот мой XML-файл, который содержит различные настройки, которые пользователь может выбрать для живых обоев:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="Main Settings">
<ListPreference
android:title="Background Image"
android:summary="Set the background image for the wallpaper"
android:key="listPref"
android:defaultValue="1"
android:entries="@array/background"
android:entryValues="@array/background_values" />
</PreferenceCategory>
</PreferenceScreen>
Мой @array выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="background">
<item>Background 1</item>
<item>Background 2</item>
</string-array>
<string-array name="background_values">
<item>1</item>
<item>2</item>
</string-array>
</resources>
Моя основная активность обоев использует это, чтобы проверить, выбрал ли пользователь новый параметр:
public void onSharedPreferenceChanged(SharedPreferences pSharedPrefs, String pKey)
{
if (prefs.getString("listPref", "Background 1").equals(2))
{
Toast.makeText(this, "test", Toast.LENGTH_LONG).show();
final Scene scene = new Scene();
final AutoParallaxBackground autoParallaxBackground = new AutoParallaxBackground(
0, 0, 0, 5);
autoParallaxBackground.attachParallaxEntity(new ParallaxEntity(2.7f,
new Sprite(0, 0, this.mAutoParallaxCustomBackground)));
scene.setBackground(autoParallaxBackground);
}
}
У меня вопрос ... скажем, у меня есть 10 различных фонов на выбор: Фон 1, Фон 2, Фон 3 ... и т. Д., Придется ли мне продолжать делать заявления Else, подобные описанному выше, умеет ухаживать за всеми фонами в настройках? Или я где-то пропускаю шаг? Должен быть более простой способ выяснить, на каком фоне пользователь щелкнул в настройках.
Нужно ли что-то делать с 'background_values' в моем XML-файле?
И да, я понимаю, что мое утверждение If неверно, но я еще не выяснил, как заставить его работать должным образом.