2011-09-27 17 views

risposta

14

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

Il nuovo valore del campo è contenuto in un oggetto chiamato newValue. Usa newValue.tostring per (Your_Test) la preferenza –

+0

non verrà salvata se la usiamo. –

3

È 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.

+1

Già. Ho effettuato la convalida tramite onchangelistener e regexp matcher –

Problemi correlati