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 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.
精彩评论