java - 引起:java.lang.NumberFormatException:对于输入字符串:“androidx.appcompat.widget.AppCompatEditText
问题描述
我和我的搭档一直在开发一款专注于安排和预订房间的移动应用程序。我们遇到了打印问题。一旦我们点击确认信息,它就会崩溃并且不会打印到表格中。希望在解决我们的问题方面得到一些帮助。
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)
我是 android studios 和堆栈溢出的初学者用户,所以如果犯了任何菜鸟错误,我深表歉意!
解决方案
你正在使用
dummy = Integer.parseInt((String)editText.toString());
toString
的 editText 将返回它的信息,这是一个巨大的字符串使用getText
,如下所示
dummy = Integer.parseInt((String)editText.getText().toString());
推荐阅读
- javascript - 单击链接后,通过 JavaScript 重新加载页面继续一次
- python - 如何使用以下 DataFrame 创建字典
- c# - 32 位客户端和 64 位服务器之间的免注册 COM 互操作
- asp.net - 允许未经身份验证访问 ASP.NET web.config 中的某些文件类型,无论其位置如何
- python - 如果他们第一次弄错了,有没有办法不给分,测验,python
- python - 如何将 df 值与列表的元素进行比较,并用这些值制作 df?
- python - 如何让 pylint 在全局范围内忽略单个模块的未使用导入?
- python - 如何从 SQL Server 表中提取日期并将其存储在 Pandas 的变量中,没有噪音,只有日期
- floating-point - 如何在不使用宏或反复试验的情况下找到用于浮点数的基数
- c# - C# Coverlet 结果始终为空