1

PreferenceActivity から呼び出されるカスタム DialogPreference は、ダイアログが閉じられたときに OnPreferenceChange() を呼び出しません。

persistXXXX() がトリガーだと思いました:

@Override
protected void onDialogClosed(boolean positiveResult) {
    super.onDialogClosed(positiveResult);
    if(positiveResult) {
        persistString(s);
    }
}

ただし、 onPreferenceChanged() は呼び出されません。

他のすべての標準設定タイプ (EditTextPreference、ListPreference など) は機能します。

問題は、この設定タイプの OnPreferenceChange() をトリガーするのは何ですか?

4

2 に答える 2

1
protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);
        SharedPreferences sp = PreferenceManager
                .getDefaultSharedPreferences(this);
        sp.registerOnSharedPreferenceChangeListener(this);
    }

私はあなたがregisterOnSharedPreferenceChangeListenerを逃していると思います

于 2013-01-10T03:23:38.047 に答える