Get integer value from edittext

12,184

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");

}
Share:
12,184
theduman
Author by

theduman

Updated on June 04, 2022

Comments

  • theduman
    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
      MikeIsrael over 11 years
      is 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
      Pablo Jomer over 11 years
      Where 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
    theduman over 11 years
    this could be helpful.i am trying right now thanks to all for your help.
  • Gimali
    Gimali about 8 years
    This 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.