Je sais déjà ce qui cause cette erreur, je ne sais tout simplement pas comment gérer le cas lorsqu'un utilisateur n'entre rien dans la boîte de dialogue, puis appuyez sur le bouton qui analyse la chaîne dans un int. Il ne peut pas analyser une chaîne vide dans un int, il jette une erreur. J'ai fait des recherches sur la façon de faire cela, mais j'ai trouvé un résultat satisfaisant qui fonctionne. P>
Problème: Comment vérifiez-vous si la boîte de dialogue contient du texte, avant qu'il ne tente d'exécuter le reste du code. p>
4 Réponses :
Problème: Comment vérifiez-vous si la boîte de dialogue contient du texte avant qu'il essaie d'exécuter le reste du code. P>
solution: un
si code> instruction. p>
xxx pré> Si vous pouvez épargner la dépendance supplémentaire, je tire dans la langue commune Lang Stringutils, à utiliser Stringutils.isblank au lieu de couper / isempty, car cela gère également Unicode. P> blockquote>
Certains code aideraient la syntaxe mais fondamentalement aussi, vous pouvez survenir à un essayer / attraper code> et attraper une formatxception puis imprimer un message approprié < / p> p>
String text = editText.getText().toString(); if(!text.equals("") && text.matches("^\\d+$")){ cast to int }
La même erreur causait ma demande de crash.
ans strong> est simple- Mettez le code dans le essayer {
} p>
blockQuote> et p> attrape () p>
blockQuote> bloc qui provoque une exception, comme ce code Snip.Ce fonctionne pour moi. P>
public void setAge(String age) {
final Calendar c = Calendar.getInstance();
int yearCurrent = c.get(Calendar.YEAR);
try {
int yearPrev = (int) Integer.parseInt(age.substring(0, 4));//this line was causing the error
int ageYear=yearCurrent-yearPrev;
ageUser="Age : "+Integer.toString(ageYear);
}
catch(NumberFormatException numberEx) {
System.out.print(numberEx);
}
}