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