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.
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
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.
String text = editText.getText().toString();
if(!text.equals("") && text.matches("^\\d+$")){
cast to int
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With