Android Studio 应用中 Integer.parseInt(bankBal.toString()) 的致命错误
Fatal Error with Integer.parseInt(bankBal.toString()) in Android Studio app
下面列出了我的代码。在程序的早期,我让用户输入一个 int 数量并将其传递到文本视图中,这样他们就可以查看数量而不再编辑它。
现在,我正试图从同一个文本视图中获取一个整数。问题是接受金额的 int 在不同的函数中,所以我不能只使用那个 int。
这是为了创建 int balRem,"find" 文本视图框,读取文本视图中的内容,并以 balRem 中的 in 作为 "balance" 的 int 结束在银行文本视图中。
我这里有代码,下面列出了错误代码的主要内容。错误发生在列出的第三行。
int balRem;
TextView bankBal = (TextView) findViewById(R.id.bankBal);
//String balRemStr = bankBal.toString();
balRem = Integer.parseInt(bankBal.toString());
java.lang.IllegalStateException: 无法执行 android:onClick
的方法
原因:java.lang.reflect.InvocationTargetException
原因:java.lang.NumberFormatException:对于输入字符串:"android.support.v7.widget.AppCompatTextView{aeb8167 V.ED..... ........ 1037,448-1251,539 #7f0d0082 app:id/bankBal}"
编辑 - 解决重复问题,见评论。
@avojak 不,不是。这里的问题是数字的来源,而不是数字本身。 – EJP
你应该使用 bankBal.getText();
获取 TextView 对象的文本内容。
您的代码试图获取 TextView 对象并将其转换为字符串,这会导致错误。
您实际上应该做的是获取分配给 TextView 对象的文本值并改用它。
balRem = Integer.parseInt(bankBal.toString());
到
balRem = Integer.parseInt(bankBal.getText().toString());
下面列出了我的代码。在程序的早期,我让用户输入一个 int 数量并将其传递到文本视图中,这样他们就可以查看数量而不再编辑它。
现在,我正试图从同一个文本视图中获取一个整数。问题是接受金额的 int 在不同的函数中,所以我不能只使用那个 int。
这是为了创建 int balRem,"find" 文本视图框,读取文本视图中的内容,并以 balRem 中的 in 作为 "balance" 的 int 结束在银行文本视图中。
我这里有代码,下面列出了错误代码的主要内容。错误发生在列出的第三行。
int balRem;
TextView bankBal = (TextView) findViewById(R.id.bankBal);
//String balRemStr = bankBal.toString();
balRem = Integer.parseInt(bankBal.toString());
java.lang.IllegalStateException: 无法执行 android:onClick
的方法原因:java.lang.reflect.InvocationTargetException
原因:java.lang.NumberFormatException:对于输入字符串:"android.support.v7.widget.AppCompatTextView{aeb8167 V.ED..... ........ 1037,448-1251,539 #7f0d0082 app:id/bankBal}"
编辑 - 解决重复问题,见评论。
@avojak 不,不是。这里的问题是数字的来源,而不是数字本身。 – EJP
你应该使用 bankBal.getText();
获取 TextView 对象的文本内容。
您的代码试图获取 TextView 对象并将其转换为字符串,这会导致错误。
您实际上应该做的是获取分配给 TextView 对象的文本值并改用它。
balRem = Integer.parseInt(bankBal.toString());
到
balRem = Integer.parseInt(bankBal.getText().toString());