2010-09-22 5 views
3

Quelle est la meilleure façon de configurer un widget dans Android pour entrer un code PIN à 4 chiffres?Widget d'entrée PIN pour Android

Actuellement, j'ai:

<EditTextPreference 
    android:title="PIN" 
    android:summary="Your PIN number" 
    android:key="password" 
    android:numeric="integer" 
    android:maxLength="4" 
    android:password="true" 
/> 

Cela fonctionne très bien, mais il n'y a aucun moyen de contraindre l'entrée à au moins 4 chiffres. Est-ce la façon dont vous auriez quelqu'un définir un code PIN dans les préférences? Ou y a-t-il un meilleur moyen? Au fait, avant que les gens ne commente les implications en matière de sécurité, je n'ai pas choisi le code PIN à 4 chiffres, c'est pour se connecter à un système tiers et je ne peux pas le changer. Et non, ce n'est pas pour la banque.

Répondre

3

Vous pouvez ajouter un OnPreferenceChangeListener et vérifier la longueur du mot de passe.

E.g. si vous utilisez un PreferenceActivity:

findPreference("password").setOnPreferenceChangeListener(new OnPreferenceChangeListener(){ 
    public boolean onPreferenceChange (Preference preference, Object newValue){ 
     if ((String)newValue).length == 4) 
      super.onPreferenceChange(preference, newValue); 
     else 
      Toast.makeText(this, "The PIN must have 4 digits", Toast.LENGTH_LONG).show(); 
    } 
}); 
0

Il y a une vue intéressante dans Github qui rend le codage de l'entrée 4 assez simple et facile à utiliser. Vérifier source