Я создал живые обои для Android с помощью openGL. Он отлично работает. Теперь я хочу установить настройки в своих живых обоях, используя общие настройки. Я не знаю, как получить значение настроек.
Может ли кто-нибудь сказать мне, как я могу получить значение общих настроек и использовать его для рендеринга сферы. Это мои настройки xml,
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
>
<ListPreference
android:entryValues="@array/textureitems_values"
android:entries="@array/textureitems"
android:summary="Select rotation speed"
android:title="Rotation Speed"
android:key="rotspeed"
>
</ListPreference>
<ListPreference
android:entryValues="@array/planetitems_values"
android:entries="@array/planetitems"
android:summary="Select Planet"
android:title="Planet"
android:key="moreapps"
>
</ListPreference>
<ListPreference
android:entryValues="@array/timeitems_values"
android:entries="@array/timeitems"
android:summary="Select time"
android:title="Time"
android:key="time"
>
</ListPreference>
<Preference android:title="More Apps" android:summary="To want more apps like this" android:key="mypref" />
From which class I can get the preference value and apply those values to render?
EDIT: Это код, который я пробую, это в сервисе обоев,
class MyEngine extends GLEngine implements
SharedPreferences.OnSharedPreferenceChangeListener,
SensorEventListener {
NeheLesson08Renderer renderer;
public MyEngine() {
super();
// handle prefs, other initialization
renderer = new NeheLesson08Renderer();
sharedPreferences = NeheLesson08WallpaperService.this.getSharedPreferences(PREFERENCES, 0);
sharedPreferences.registerOnSharedPreferenceChangeListener(this);
onSharedPreferenceChanged(sharedPreferences, null);
renderer.setContext(getBaseContext());
setRenderer(renderer);
setRenderMode(RENDERMODE_CONTINUOUSLY);
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
sharedPreferences = getSharedPreferences(PREFERENCES, MODE_PRIVATE);
String rotspeed = null;
String storedPreference = sharedPreferences.getString("rotspeed", "key");
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("rotspeed", storedPreference); // value to store
editor.commit();
System.out.println("stored procedure values::"+storedPreference);
}
Это в классе Renderer
storedPreference= sharedPreferences.getString("rotspeed", "key");
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("rotspeed", storedPreference); // value to store
editor.commit();
System.out.println("stored procedure values in rendere::"+storedPreference);
Мой Logcat выглядит так:
06-26 01:42:38.285: E/AndroidRuntime(4778): FATAL EXCEPTION: main
06-26 01:42:38.285: E/AndroidRuntime(4778): java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
06-26 01:42:38.285: E/AndroidRuntime(4778): at android.app.SharedPreferencesImpl.getString(SharedPreferencesImpl.java:224)
06-26 01:42:38.285: E/AndroidRuntime(4778): at com.srashtaa.planets3dgalaxylivewallpaper.NeheLesson08Renderer.LoadPreferences(NeheLesson08Renderer.java:155)
06-26 01:42:38.285: E/AndroidRuntime(4778): at com.srashtaa.planets3dgalaxylivewallpaper.NeheLesson08Renderer.setContext(NeheLesson08Renderer.java:146)
06-26 01:42:38.285: E/AndroidRuntime(4778): at com.srashtaa.planets3dgalaxylivewallpaper.NeheLesson08WallpaperService$MyEngine.<init>(NeheLesson08WallpaperService.java:42)
06-26 01:42:38.285: E/AndroidRuntime(4778): at com.srashtaa.planets3dgalaxylivewallpaper.NeheLesson08WallpaperService.onCreateEngine(NeheLesson08WallpaperService.java:26)
Заранее спасибо!!
storedPreference
? - person Green goblin   schedule 26.06.2014