Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.NumberFormatException: Invalid int: "" in android

I already know what is causing this error, I just do not know how to handle the case when a user doesn't enter anything into the dialogue box, then hit the button which parses the string into an int. It can't parse an empty string into an int, so it throws an error. I have done some research on how to do this, but have not found a satisfactory result that works.

Problem: How do you check to see if the dialogue box has text in it, before it tries to run the rest of the code.

like image 993
Code_Insanity Avatar asked May 24 '13 01:05

Code_Insanity


3 Answers

Some code would help with the syntax but basically

 if ("".equals(text)  // where text is the text that you get from an EditText or wherever you get it
 {    // give message to enter valid text;    }

Also, you can surround with a try/catch and catch a numberFormatException then print an appropriate message

like image 104
codeMagic Avatar answered Nov 18 '22 19:11

codeMagic


Problem: How do you check to see if the dialogue box has text in it, before it tries to run the rest of the code.

Solution: An if statement.

 int parseToInt(String maybeInt, int defaultValue){
     if (maybeInt == null) return defaultValue;
     maybeInt = maybeInt.trim();
     if (maybeInt.isEmpty()) return defaultValue;
     return Integer.parseInt(maybeInt);
 }

If you can spare the extra dependency, I'd pull in Common Lang StringUtils, to use StringUtils.isBlank instead of trim/isEmpty, because that also handles Unicode.

like image 35
Thilo Avatar answered Nov 18 '22 18:11

Thilo


   String text = editText.getText().toString(); 
   if(!text.equals("") && text.matches("^\\d+$")){
       cast to int
    }
like image 1
Roger Garzon Nieto Avatar answered Nov 18 '22 20:11

Roger Garzon Nieto