que je dois faire pour gestionnaire EditText dans mon application et cette EditText accepte an entre 1980 à 2015.InputFilter ou TextWatcher pour EditText qui gèrent un grand nombre entier (comme l'an ..)
J'ai trouvé une très bonne solution pour EditText pour jour (s) et mois (s) dans ce link.
Mais malheureusement, cela ne fonctionne pas pour les grands nombres comme les années!
J'ai donc écrit un morceau de code.
etDateYear = (EditText) findViewById(R.id.year_date_xml);
etDateYear.addTextChangedListener(YearWatcher);
private final TextWatcher YearWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
try{
if(s.length()>=4){
int year = Integer.parseInt(etDateYear.getText().toString());
if(!(year < 2016 && year > 1979)) {
etDateYear.setText("");
}
}
} catch (NumberFormatException nfe) {
//nfe
}
}
};
Celui-ci ne fonctionne pas non plus car un seul chiffre est inférieur à 1980, donc il passe "". (Je pense que c'est la cause).
Alors, n'importe qui pourrait vous aider? Merci beaucoup ..
1) Solution simple remplacer "ou" par "et" dans l'expression conditionnelle. 2) Remplacer seul si à deux si condition. 3) Afficher le code de filtre d'entrée –
Merci pour votre considération; J'ai fait ce que j'ai reçu de votre commentaire mais pas ... travail :( – SDG69
Je suppose que vous avez pris le code du filtre d'entrée de quelque part mais ne l'a pas modifié selon votre condition? –