10

設定セクションの設定の1つとしてEdittextpreferenceを使用しています。ユーザーがデータを入力して[OK]をクリックしたときに、このedittextpreferenceを検証したいと思います。sharedpreferenceに保存する前に。

私はこのようなことをしようとしていますが、これは私が最初に思う優先順位を保存します。

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に保存する前に検証する方法を教えてくれるので、保存するかどうかを決めることができます。

4

1 に答える 1

21

ここのドキュメントによると

ユーザーが Preference を変更したときに呼び出されます。これは、Preference の状態が更新される前、および状態が永続化される前に呼び出されます。

True を返し、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;
                     }
              })
       });
于 2013-03-24T04:08:00.577 に答える