2010-11-23 16 views
0

私はアンドロイドの生の壁紙をする方法を学ぼうとしています。私はそれが働いている今、私はカップルの設定を追加したい。だから、私は嗜好活動を作成し、私が見つけることができるすべての例に従った。アンドロイド開発でCheckBoxPreferenceの変更を取得するにはどうすればよいですか?

私はListBoxPreferencesをうまくキャプチャできますが、チェックボックスが変更されても 'onSharedPreferenceChanged'メソッドは呼び出されません。

チェックボックスの変更をキャプチャするために追加する必要がある余分なコードはありますか?環境設定でチェックボックスを実行するベストプラクティスの方法はありますか?

私はこの問題に対して2日間頭を悩まされています。どんな助けでも大いに感謝しています!

ありがとうございます!

答えて

0

@Josh - 良い答え。

私は完全性のために、PreferenceActivityのonResume()メソッドの変更を登録し、onPause()メソッドの登録を解除するように設定する必要があります。

this questionの答えは、Androidのサンプルプログラムのコードサンプルです。

また、アクティビティのonCreate()の各プリファレンスにリスナーを登録し、それらのイベントを個別に処理することもできます。

0

onSharedPreferenceChangedコールバックを受信するために登録しましたか?

はあなたの主な活動ののonCreateメソッドにこれを追加(およびonSharedPreferenceChangedを実装することを確認してください):

PreferenceManager.getDefaultSharedPreferences(getBaseContext()).registerOnSharedPreferenceChangeListener(this); 
+0

提案していただきありがとうございます。しかし、私はすでにそれをしています。私はこれをやっているonSharedPreferenceChangedメソッドの内部:System.out.println(prefs.getAll()。toString()); SharedPreferenceのすべてのキーと値を出力します。ただし、チェックボックスのキーは表示されません。だから何らかの理由で、チェックボックスは聴かれていない。何か案は? – max

+0

preferences.xmlファイルを投稿する可能性はありますか? –

関連する問題