Ho PreferenceActivity
con 2 campi.Convalida le preferenze. Android
- Un URL
- tempo in secondi
ho bisogno di validare il primo per un URL valido e la seconda per un valore intero. Come lo faccio con mezzi standard?
Ho PreferenceActivity
con 2 campi.Convalida le preferenze. Android
ho bisogno di validare il primo per un URL valido e la seconda per un valore intero. Come lo faccio con mezzi standard?
Ecco alcuni codice che implementa OnPreferenceChangeListener
nel frammento:
@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;
}
});
}
È possibile utilizzare l'attributo android: inputType per questi campi in xml, questo visualizzerà una tastiera per l'utente per l'immissione del valore in un formato specifico.
Tutte
http://developer.android.com/reference/android/text/InputType.html
Ma questo non garantisce che l'URL non sarà valido. Che dovresti controllare usando l'espressione regolare nel tuo gestore di invio.
Già. Ho effettuato la convalida tramite onchangelistener e regexp matcher –
Il nuovo valore del campo è contenuto in un oggetto chiamato newValue. Usa newValue.tostring per (Your_Test) la preferenza –
non verrà salvata se la usiamo. –