开发者

Validate preferences. Android

开发者 https://www.devze.com 2023-04-07 15:08 出处:网络
I have PreferenceActivity开发者_StackOverflow with 2 fields. A URL 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 standar

I have PreferenceActivity开发者_StackOverflow 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?


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


You can use android:inputType attribute for these fields in the xml, this will display a keyboard to the user for entering the value in a specific format.

See more

http://developer.android.com/reference/android/text/InputType.html

But this do not guarantee that the URL will not be malformed. That you would need to check using regular expression in your submit handler.

0

精彩评论

暂无评论...
验证码 换一张
取 消