2
由于某种原因,我的监听器没有被调用?这是我有:自定义EditTextPreference和setOnPreferenceChangeListener未调用
在首选项文件我有一个自定义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;
}
});
我的第一个猜测是,这个问题是在听众中。发布在你的问题。 – Sam
我更新了我的帖子,但是我保留了所有的代码,除了将偏好设置文件改回到
powder366
你是否在你的自定义类中重写'setOnPreferenceChangeListener()'或类似的东西? – Sam