我的听众由于某种原因没有被叫到?这就是我所拥有的:
在首选项文件中,我有一个自定义的 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;
}
});