简体   繁体   中英

Caused by: java.lang.NumberFormatException: For input string: "androidx.appcompat.widget.AppCompatEditText

Me and my partner have been working on a mobile app that focuses on scheduling and reserving rooms. We are having an issue with printing. As soon as we hit confirm for the information, it crashes and doesn't print to the table. Would love some help in figuring out our issue in this.

MainActivity.java

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        RoomAppDatabase.AppDatabase db = Room.databaseBuilder(getApplicationContext(),
                RoomAppDatabase.AppDatabase.class, "database-name").allowMainThreadQueries().build();
        RoomDao rao = db.roomDao();
        RoomUser dummy;
        //create default user list
        /*for(int i = 1; i < 9; i++)
        {

            //inserts user to database
            rao.insertRoomUser(user);

        }*/

        printTable();
        //setContentView(R.layout.activity_main);
    }

    public void printTable()
    {
        //loop to write names from database to the corresponding text entries on the main Activity
        for(int i=1;i<9;i++)
        {


            if(i == 1)
            {
                TextView txt =findViewById(R.id.rb1);
                txt.setText("Reserved by: "+user1.fullName);
            }
            if(i == 2)
            {
                TextView txt =findViewById(R.id.rb2);
                txt.setText("Reserved by: "+ user2.fullName);
            }
            if(i == 3)
            {
                TextView txt =findViewById(R.id.rb3);
                txt.setText("Reserved by: "+ user3.fullName);
            }
            if(i == 4)
            {
                TextView txt =findViewById(R.id.rb4);
                txt.setText("Reserved by: "+ user4.fullName);
            }
            if(i == 5) {
                TextView txt = findViewById(R.id.rb5);
                txt.setText("Reserved by: " + user5.fullName);
            }
            if(i == 6)
            {
                TextView txt =findViewById(R.id.rb6);
                txt.setText("Reserved by: "+ user6.fullName);
            }
            if(i == 7)
            {
                TextView txt =findViewById(R.id.rb7);
                txt.setText("Reserved by: "+ user7.fullName);
            }
            if(i == 8)
            {
                TextView txt =findViewById(R.id.rb8);
                txt.setText("Reserved by: "+ user8.fullName);
            }



        }
    }


    public void btnclick_Reserve(View view){
    //put action to jump from main activity to register page here
        setContentView(R.layout.fragment_register_page);

    }

    public void btnclick_commit(View view) {
        int dummy;
        EditText editText = (EditText)findViewById(R.id.edittext1);
        dummy = Integer.parseInt((String)editText.toString());
        name = String.valueOf(dummy);
        EditText editText1 = (EditText)findViewById(R.id.edittext2);
        email = (String)editText1.toString();
        EditText editText2 = (EditText)findViewById(R.id.edittext3);
        phoneNumber = (String)editText2.toString();
        EditText editText3 = (EditText)findViewById(R.id.edittext4);
        rmNumber = (String)editText3.toString();

        //int rmInt =2;
        if(rmNumber.equals("1"))
        {
            user1.setFullName(name);

        }
        if(rmNumber.equals("2"))
        {
            user2 = new RoomUser(name,email,phoneNumber,rmNumber);
        }
        if(rmNumber.equals("3"))
        {
            user3 = new RoomUser(name,email,phoneNumber,rmNumber);
        }
        if(rmNumber.equals("4"))
        {
            user4 = new RoomUser(name,email,phoneNumber,rmNumber);
        }
        if(rmNumber.equals("5")) {
            user5 = new RoomUser(name,email,phoneNumber,rmNumber);
        }
        if(rmNumber.equals("6"))
        {
            user6 = new RoomUser(name,email,phoneNumber,rmNumber);
        }
        if(rmNumber.equals("7"))
        {
            user7 = new RoomUser(name,email,phoneNumber,rmNumber);
        }
        if(rmNumber.equals("8"))
        {
            user8 = new RoomUser(name,email,phoneNumber,rmNumber);
        }

        printTable();
        //insert to database
        //RoomUser swapuser = new RoomUser(name,email,phoneNumber,rmInt);
        //rao.updateUser(swapuser);
        //put action to return to mainActivity from registerpage
        setContentView(R.layout.activity_main);

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/schedule1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="105dp"
        android:layout_marginLeft="7dp"
        android:layout_marginTop="1dp"
        android:fontFamily="sans-serif-black"
        android:text="@string/scheduling"
        android:textColor="#000000"
        android:textSize="40sp" />

    <TextView
        android:id="@+id/hl1"
        android:layout_width="match_parent"
        android:layout_height="3dp"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="@string/horizontal_line"
        android:textSize="25sp" />

   <LinearLayout
       android:id="@+id/linear_layout_1"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal">
       
   </LinearLayout>

    <TextView
        android:id="@+id/horizontal_line_2"
        android:layout_width="match_parent"
        android:layout_height="3dp"
        android:gravity="center_horizontal"
        android:background="#000000"
        android:text="@string/horizontal_line2"
        android:textSize="24sp"/>

    <LinearLayout
        android:id="@+id/linear_layout_2"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_gravity="center_vertical">

        <TextView
            android:id="@+id/room_01"
            android:layout_width="120dp"
            android:layout_height="60dp"
            android:fontFamily="sans-serif-black"
            android:text="@string/room_1"
            android:textColor="#000000"
            android:textSize="30sp"/>

        <TextView
            android:id="@+id/center_vertical_2"
            android:layout_width="5dp"
            android:layout_height="60dp"
            android:layout_gravity="center_vertical"
            android:background="#000000"/>

        <TextView
            android:id="@+id/rb1"
            android:layout_width="wrap_content"
            android:layout_height="60dp"
            android:fontFamily="sans-serif-black"
            android:text="@string/reserved_by"
            android:textColor="#012f7d"
            android:textSize="20sp" />

        <TextView
            android:id="@+id/textviewmain"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:hint="@string/main_edit_text"
            android:autofillHints="@string/main_edit_text"/>
    </LinearLayout>

    <TextView
        android:id="@+id/horizontal_line_3"
        android:layout_width="match_parent"
        android:layout_height="3dp"
        android:background="#000000"
        android:text="@string/line_1"/>

    <LinearLayout
        android:id="@+id/linear_layout_3"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_gravity="center_vertical">
        <TextView
            android:id="@+id/room_02"
            android:layout_width="120dp"
            android:layout_height="60dp"
            android:fontFamily="sans-serif-black"
            android:textColor="#000000"
            android:text="@string/room_2"
            android:textSize="30sp"/>
        <TextView
            android:id="@+id/center_vertical_3"
            android:layout_width="5dp"
            android:layout_height="60dp"
            android:layout_gravity="center_vertical"
            android:background="#000000"/>

        <TextView
            android:id="@+id/rb2"
            android:layout_width="wrap_content"
            android:layout_height="60dp"
            android:fontFamily="sans-serif-black"
            android:text="@string/reserved_by"
            android:textColor="#012f7d"
            android:textSize="20sp" />
        <TextView
            android:id="@+id/textviewmain2"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:hint="@string/main_edit_text"
            android:autofillHints="@string/main_edit_text"/>
    </LinearLayout>

DEBUG

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.cosc3352wg, PID: 8174
    java.lang.IllegalStateException: Could not execute method for android:onClick
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:414)
        at android.view.View.performClick(View.java:7448)
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)
        at android.view.View.performClickInternal(View.java:7425)
        at android.view.View.access$3600(View.java:810)
        at android.view.View$PerformClick.run(View.java:28305)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409)
        at android.view.View.performClick(View.java:7448) 
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119) 
        at android.view.View.performClickInternal(View.java:7425) 
        at android.view.View.access$3600(View.java:810) 
        at android.view.View$PerformClick.run(View.java:28305) 
        at android.os.Handler.handleCallback(Handler.java:938) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 
     Caused by: java.lang.NumberFormatException: For input string: "androidx.appcompat.widget.AppCompatEditText{33d245f VFED..CL. ........ 55,528-1089,649 #7f0800aa app:id/edittext1 aid=1073741824}"
        at java.lang.Integer.parseInt(Integer.java:615)
        at java.lang.Integer.parseInt(Integer.java:650)
        at com.example.cosc3352wg.MainActivity.btnclick_commit(MainActivity.java:112)
        at java.lang.reflect.Method.invoke(Native Method) 
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409) 
        at android.view.View.performClick(View.java:7448) 
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119) 
        at android.view.View.performClickInternal(View.java:7425) 
        at android.view.View.access$3600(View.java:810) 
        at android.view.View$PerformClick.run(View.java:28305) 
        at android.os.Handler.handleCallback(Handler.java:938) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 

I am a beginner user for android studios and stack overflow, so i apologize if have made any noob mistakes!

You're using

dummy = Integer.parseInt((String)editText.toString());

toString of editText will return it's info which is a huge string use getText like below

dummy = Integer.parseInt((String)editText.getText().toString());

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM