How do you validate the format and values of EditTextPreference entered in Android 2.1?

后端 未结 3 1420
谎友^
谎友^ 2020-12-06 10:46

Does anyone have sample code to validate user entered text in preferences? For example, I have a EditTextPreference for user to enter an email address. I\'d like to validate

3条回答
  •  生来不讨喜
    2020-12-06 11:44

    Your question was an early google hit when I was trying to do the same thing, so hopefully this helps someone. Here's something I hacked together today that demonstrates OnPreferenceChangeListener, thus allowing you to stop invalid changes.

    in your fragment:

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.preferences);
    
            Your_Pref = (EditTextPreference) getPreferenceScreen().findPreference("Your_Pref");
    
            Your_Pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
    
                @Override
                public boolean onPreferenceChange(Preference preference, Object newValue) {
                    Boolean rtnval = true;
                    if (Your_Test) {
                        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                        builder.setTitle("Invalid Input");
                        builder.setMessage("Something's gone wrong...");
                        builder.setPositiveButton(android.R.string.ok, null);
                        builder.show();
                        rtnval = false;
                    }
                    return rtnval;
                }
            });
        }
    

提交回复
热议问题