Tengo PreferenceActivity
con 2 campos.Validar las preferencias. Android
- Un URL
- Tiempo en segundos
necesito para validar el primero para una URL válida y el segundo para un valor entero. ¿Cómo lo hago con los medios estándar?
Tengo PreferenceActivity
con 2 campos.Validar las preferencias. Android
necesito para validar el primero para una URL válida y el segundo para un valor entero. ¿Cómo lo hago con los medios estándar?
Aquí hay algo de código que implementa OnPreferenceChangeListener
en su fragmento:
@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;
}
});
}
Puede usar el atributo android: inputType para estos campos en el xml, esto mostrará un teclado al usuario para ingresar el valor en un formato específico.
Ver más
http://developer.android.com/reference/android/text/InputType.html
Pero esto no garantizan que la dirección no tenga malformaciones. Que necesitaría verificar usando la expresión regular en su controlador de envío.
Sí. Hice la validación a través de onchangelistener y regexp matcher –
El nuevo valor del campo se mantiene en un objeto llamado newValue. Use newValue.tostring para (Your_Test) –
la preferencia no se guardará si usamos esto. –