何らかの理由でリスナーが呼び出されませんか? これは私が持っているものです:
設定ファイルには、カスタム EditTextPreference があります。
<com.xxx.yyy.preference.PreferenceEditTextDialog
android:layout="@layout/preference_edit"
android:title="@string/title"
android:summary="@string/summary"
android:defaultValue=""
android:dialogTitle="@string/dialogTitle"
android:key="mypref"/>
クラスを拡張します:
public class PreferenceEditTextDialog extends EditTextPreference {
アクティビティの起動:
startActivity(new Intent(this, PrefsActivity.class));
意味:
public class PrefsActivity extends PreferenceActivity implements
OnPreferenceClickListener, OnSharedPreferenceChangeListener {
ここで、setOnPreferenceChangeListener (呼び出されない) を登録します。
ただし、設定ファイルを次から変更します。
<com.xxx.yyy.preference.PreferenceEditTextDialog
デフォルトに:
<EditTextPreference
それはすべて動作します。誰かが問題を見つけるのを手伝ってくれませんか.どういうわけか、私のカスタム設定を使用してリスナーが適切に伝播されません.
ありがとう!
@Samここで私のリスナーの定義:
myfield = (EditTextPreference) getPreferenceScreen().findPreference(KEY_PREFERENCE);
myfield.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
Boolean valid = true;
if(!validate(newValue.toString())) {
valid = false;
}
return valid;
}
});