Get integer value from edittext
Solution 1
The problem seems that when Activity is bringed to front there is no value in EditText
. Integer parser don't know how to parse empty String, so Exception is thrown.
You need to check for existing of text in that EditText
before parsing
final int f = -1; // or other invalid value
if (from.getText().toString().length() > 0)
f = Integer.parseInt(from.getText().toString());
Similarly for other EditText
Solution 2
as you can see from your Logcat:
08-28 19:34:44.790: E/AndroidRuntime(3346): Caused by: java.lang.NumberFormatException: Invalid int: ""
there was an empty input that couldn't be converted into an int
.
try validating user input.
Solution 3
- Please check the value of EditText
, is it a valid integer
value or not.
Try out this code:
int i = 0;
try{
i = Integer.parseInt(from.getText().toString());
}catch(NumberFormatException ex){
System.out.println("Value at TextView is not a valid integer");
}
theduman
Updated on June 04, 2022Comments
-
theduman almost 2 years
When I try to run the code below, my program has stops. I want this code to get the value from
edittext
but it´s not working as I expected it. What am I doing wrong?public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button sum = (Button) findViewById(R.id.button1); Button cancel = (Button) findViewById(R.id.button2); final EditText from = (EditText) findViewById(R.id.editText1); final EditText upto = (EditText) findViewById(R.id.editText2); final EditText runsum = (EditText) findViewById(R.id.editText3); final int f = Integer.parseInt(from.getText().toString()); final int u = Integer.parseInt(upto.getText().toString()); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
Here is my LogCat sorry for mess :/
08-28 19:34:44.241: E/Trace(3346): error opening trace file: No such file or directory (2) 08-28 19:34:44.780: D/AndroidRuntime(3346): Shutting down VM 08-28 19:34:44.780: W/dalvikvm(3346): threadid=1: thread exiting with uncaught exception(group=0x40a13300) 08-28 19:34:44.790: E/AndroidRuntime(3346): FATAL EXCEPTION: main 08-28 19:34:44.790: E/AndroidRuntime(3346): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.project/com.example.project.MainActivity}: java.lang.NumberFormatException: Invalid int: "" 08-28 19:34:44.790: E/AndroidRuntime(3346): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 08-28 19:34:44.790: E/AndroidRuntime(3346): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 08-28 19:34:44.790: E/AndroidRuntime(3346): at android.app.ActivityThread.access$600(ActivityThread.java:130) 08-28 19:34:44.790: E/AndroidRuntime(3346): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 08-28 19:34:44.790: E/AndroidRuntime(3346): at android.os.Handler.dispatchMessage(Handler.java:99) 08-28 19:34:44.790: E/AndroidRuntime(3346): at android.os.Looper.loop(Looper.java:137) 08-28 19:34:44.790: E/AndroidRuntime(3346): at android.app.ActivityThread.main(ActivityThread.java:4745) 08-28 19:34:44.790: E/AndroidRuntime(3346): at java.lang.reflect.Method.invokeNative(Native Method) 08-28 19:34:44.790: E/AndroidRuntime(3346): at java.lang.reflect.Method.invoke(Method.java:511) 08-28 19:34:44.790: E/AndroidRuntime(3346): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 08-28 19:34:44.790: E/AndroidRuntime(3346): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 08-28 19:34:44.790: E/AndroidRuntime(3346): at dalvik.system.NativeStart.main(Native Method) 08-28 19:34:44.790: E/AndroidRuntime(3346): Caused by: java.lang.NumberFormatException: Invalid int: "" 08-28 19:34:44.790: E/AndroidRuntime(3346): at java.lang.Integer.invalidInt(Integer.java:138) 08-28 19:34:44.790: E/AndroidRuntime(3346): at java.lang.Integer.parseInt(Integer.java:359) 08-28 19:34:44.790: E/AndroidRuntime(3346): at java.lang.Integer.parseInt(Integer.java:332) 08-28 19:34:44.790: E/AndroidRuntime(3346): at com.example.project.MainActivity.onCreate(MainActivity.java:25) 08-28 19:34:44.790: E/AndroidRuntime(3346): at android.app.Activity.performCreate(Activity.java:5008) 08-28 19:34:44.790: E/AndroidRuntime(3346): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 08-28 19:34:44.790: E/AndroidRuntime(3346): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 08-28 19:34:44.790: E/AndroidRuntime(3346): ... 11 more 08-28 19:35:10.560: E/Trace(3394): error opening trace file: No such file or directory (2) 08-28 19:35:11.629: D/gralloc_goldfish(3394): Emulator without GPU emulation detected. 08-28 19:48:19.295: I/Choreographer(3394): Skipped 41 frames! The application may be doing too much work on its main thread.
-
MikeIsrael over 11 yearsis it throwing an error, what does that mean that "i couldn't make it"? If you are having errors you should post your logcat
-
Pablo Jomer over 11 yearsWhere are you trying to get the editText from? What kind of object is R? it seams alot of other code or atleast some explenations are missing.
-
-
theduman over 11 yearsthis could be helpful.i am trying right now thanks to all for your help.
-
Gimali about 8 yearsThis is the right way if
EditText
does not have a length limit or something like that. Other solutions often introduce the exception and crash the app.