Android EditText首选项验证

时间:2013-03-24 03:59:02

标签: android sharedpreferences edittextpreference

我使用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中,以便我可以决定是否要保存它。

1 个答案:

答案 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;
                     }
              })
       });