Wpis z mikrobloga

Jak nie wpisze się czegoś do pola EditText i kliknie wykonawczy przycisk z tym związany to wywala błąd - jak sobie z tym poradzić?
Mój editTex przyjmuje zmienne int i próbowałem już zrobić wyjątek na podstawie długości wprowadzonej zmiennej (że jak jest 0 to wyświetla tosta), equals nie działa, textutils też nie działał, oto mój ostatni pomysł:

EditText editText =(EditText)findViewById(R.id.editText);
userNumber = Integer.parseInt(editText.getText().toString());
if(editText.getText().toString().trim().length() == 0){
Toast toast = Toast.makeText(getApplicationContext(), "You have not entered number", Toast.LENGTH_SHORT);
toast.show();
toast.setGravity(Gravity.CENTER, 0, 0);

#androiddev
  • 11
@beliver: podejrzewam, że editText.getText().toString() zwraca nulla, na którym wywołujesz trim() co prowadzi do NullPointerException - dodaj ifa sprawdzającego czy to nie jest nullem i powinno działać
@jablo: racja, właśnie sprawdziłem - zwraca pusty String. W takim razie racja - pewnie leci podczas Integer.parseInt

@beliver: najpierw zrób sprawdzenie czy nie jest pusty ciąg znaków a potem parsuj na inta
dodatkowo tak jak @jablo napisał - try { Integer.parseInt(...) } catch (ParseException e) { // obsluga jesli user nie podal liczby }
@qmar: Takie coś też wywala błąd:

EditText editText =(EditText)findViewById(R.id.editText);
if (editText.getText().toString().matches("")) {
Toast toast = Toast.makeText(getApplicationContext(), "You have not entered number", Toast.LENGTH_SHORT);
toast.show();
toast.setGravity(Gravity.CENTER, 0, 0);
}
userNumber = Integer.parseInt(editText.getText().toString());

a jak wkleiłem coś takiego:

try {
Integer.parseInt(String.valueOf(userNumber));
} catch (ParseException e) {
Toast toast = Toast.makeText(getApplicationContext(), "You have not entered number", Toast.LENGTH_SHORT);
toast.show();
toast.setGravity(Gravity.CENTER, 0, 0);

}

To AS wyświetla mi błąd:

java.text.parseException is never thrown in corresponding block
@qmar: już dałem wcześniej ;), bo się domyśliłem, że skoro text.parseException nie występuje to zobaczyłem w logach, że wywala numberFormatException, bo jest zły int "" - niestety nadal aplikacja jest zatrzymywana
@qmar: teraz mi nie zapisuje ilości gier po wyłączeniu aplikacji i jak kliknę przycisk Guess bez wpisania czegokolwiek, to zalicza mi to jako wygraną, ale przynajmniej to wywalanie aplikacji nie występuje. No i dzięki za pomoc :)