Search code examples
androidandroid-preferences

Validate preferences. Android


I have PreferenceActivity with 2 fields.

  1. A URL
  2. Time in seconds

I need to validate the first one for a valid URL and the second for an integer value. How do I do it with standard means?


Solution

  • Here's some code implementing OnPreferenceChangeListener 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;
            }
        });
    }