2012-02-13 12 views
1

私はCheckBox Preferenceと簡単なPreferenceというカスタムダイアログを呼び出すPreferenceScreenを持っています。このカスタムダイアログでは、ユーザーは番号を選択できます。このダイアログでOKを押すと、sharedPreferencesを編集して番号を保存します。保存後、自動的にOnSharedPreferenceChangedメソッドを呼び出す必要があります。OnSharedPreferenceChangedが呼び出されるようにSharedPreferencesを編集する方法

CheckBoxの設定は問題ありません。

+0

あなたは http://stackoverflow.com/questions/を試してみましたかしら3799038/onsharedpreference changed-not-fired - 変更が発生した場合 - 別のアクティビティ – Siddharth

+0

ここに私にあなたが見せたいものを理解していません... 私はonchangelistenerを登録して登録を解除しています。 CheckBoxの環境設定で動作します。 ダイアログ内の番号を選択した後、私はSharedPreferencesに番号を保存し、番号を保存すると自動的にOnSharedPreferenceChangedメソッドを呼び出す必要があります。これが可能なのかどうかはわかりません... – tschakkkiiiii

答えて

2

カスタムダイアログはDialogPreferenceを拡張する必要があります。好みは変更されている場合は、この例のように(XXXは型の名前である))persistXXX(コール:

@Override 
public void onDialogClosed(final boolean positiveResult) { 
    if(positiveResult && this.isPersistent()) { 
     final StringBuilder b = new StringBuilder(); 
     b.append(this.hour).append(':'); 
     if(this.minute < 10) 
      b.append('0'); 
     b.append(this.minute); 
     this.persistString(b.toString()); 
    } 
} 
+0

あなたの答えをありがとう。私は次の日にそれを試して報告します – tschakkkiiiii