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

Link to Android Documentation