【问题标题】:Fatal Error with Integer.parseInt(bankBal.toString()) in Android Studio appAndroid Studio 应用程序中的 Integer.parseInt(bankBal.toString()) 出现致命错误
【发布时间】:2017-06-13 20:42:08
【问题描述】:

我的代码如下所示。在程序的早期,我让用户输入一个 int 金额并将其传递到文本视图中,这样他们就可以查看金额而不再对其进行编辑。

现在,我正试图从同一个文本视图中获取一个 int。问题是接受金额的 int 在不同的函数中,所以我不能只使用那个 int。

这是为了创建 int balRem,“找到”文本视图框,读取文本视图中的内容,最后将 balRem 中的 in 作为银行文本视图中“余额”的 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 应用程序:id/bankBal}"

编辑 - 解决欺骗,见评论。

@avojak 不,不是。这里的问题是数字的来源,而不是数字本身。 – EJP

【问题讨论】:

  • 使用TextView.getText() 或任何正确的API 将文本从文本视图中取出。不是toString()
  • @EJP 谢谢!那行得通,有一个变化。它需要'balRem = Integer.parseInt(bankBal.getText().toString());'去工作。感谢您的帮助。
  • @avojak 不,不是。这里的问题是数字的来源,而不是数字本身。

标签: java android integer parseint


【解决方案1】:

您的代码正在尝试获取 TextView 对象并将其转换为字符串,这会给您带来错误。

您实际上应该做的是获取分配给 TextView 对象的文本值并改为使用它。

balRem = Integer.parseInt(bankBal.toString());

balRem = Integer.parseInt(bankBal.getText().toString());

Link to Android Documentation

【讨论】:

    【解决方案2】:

    你应该使用bankBal.getText(); 获取 TextView 对象的文本内容。

    【讨论】:

      猜你喜欢
      • 2016-09-25
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2019-05-15
      • 2013-05-10
      • 2013-01-09
      相关资源
      最近更新 更多