0

私が開発しているライブ壁紙アプリ (私の最初の) に問題があります。と の2 つのクラスを考えてみましょLiveWallpaperServiceLiveWallpaperSettingsLiveWallpaperSettings伸びPreferencyActivityます。ユーザーが選択した設定を表すサンプル データboolean displaySprite(true => 画面にスプライトを表示する、false を表示しない) は、 を介して保存/保持SharedPreferencesされLiveWallpaperSettingsます。

アプリケーションを起動すると (設定 -> 表示 -> ライブ壁紙 -> マイライブ壁紙)、スプライトが表示されるかどうかを確認するために、保存された設定を知る必要があります。ただし、LiveWallpaperSettings[設定] ボタンがクリックされるまでインスタンス化されSharedPreferencesないため、使用できないため、保存された設定はそれまで使用できません。

でこれを試しましたLiveWallpaperService.onCreateScene()が、データがありません:
SharedPreferences startupPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());

私に何ができる?

4

2 に答える 2

1

entry/sharedpref ファイルが存在しない場合のデフォルト値があります。

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
boolean display = settings.getBoolean("display", true);

"public abstract boolean getBoolean (String key, boolean defValue)"

API レベル 1 で追加 設定からブール値を取得します。

パラメータ key 取得する設定の名前。 defValue この設定が存在しない場合に返す値。

私があなたの質問を誤解していないことを願っています:)

于 2013-05-15T19:41:10.653 に答える
0

設定xmlでデフォルト値を設定し、 MainActivity onCreate() に次のコードを追加しますsetDefaultValues(this, R.xml.yourxmlname, false);

于 2013-05-15T19:53:02.337 に答える