我使用Edittextpreference作为设置部分中的首选项之一。我想在用户向其输入数据并单击确定时验证此edittextpreference;在将其保存在共享偏好中之前。
我正在尝试做这样的事情,但这首先保留了我的偏好。
editTextPreference
.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference,
Object newValue) {
if (((newValue.toString().length() == 15) {
// save preference only if length is equal to 15
}
})
});
有人可以指导我如何验证edittextpreference,然后将其保存在sharedpreference中,以便我可以决定是否要保存它。
答案 0 :(得分:21)
根据文件here
当用户更改了首选项时调用。这就是所谓的 在偏好的状态即将更新之前和之前 国家坚持不懈。
它返回True以使用new更新Preference的状态 值。
所以你可以做以下
editTextPreference
.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference,
Object newValue) {
if (((newValue.toString().length() == 15) {
//
return true;
}
else{
// invalid you can show invalid message
return false;
}
})
});