将textview中的数字转换为int

Big*_*old 11 java int android type-conversion textview

所以,我正在搞乱java/android编程,现在我正在尝试制作一个非常基本的计算器.我虽然挂了这个问题.这是我现在用于获取textview中的数字并使其成为int的代码

CharSequence value1 = getText(R.id.textView);
int num1 =  Integer.parseInt(value1.toString());
Run Code Online (Sandbox Code Playgroud)

从我可以告诉它的第二行导致错误,但我不知道为什么它这样做.编译正常,但当它试图运行程序的这一部分时,它会崩溃我的应用程序.textview中唯一的东西就是数字

有什么建议?

如有必要,我还可以提供更多代码

Vik*_*ram 17

您可以阅读TextView的用法.

如何申报:

TextView tv;
Run Code Online (Sandbox Code Playgroud)

初始化:

tv = (TextView) findViewById(R.id.textView);
Run Code Online (Sandbox Code Playgroud)

要么:

tv = new TextView(MyActivity.this);
Run Code Online (Sandbox Code Playgroud)

或者,如果你正在给布局充气,

tv = (TextView) inflatedView.findViewById(R.id.textView);
Run Code Online (Sandbox Code Playgroud)

要将字符串设置为tv,请使用tv.setText(some_string)tv.setText("this_string").如果需要设置整数值,请使用tv.setText("" + 5)setText()是一个可以处理字符串和int参数的重载方法.

tv使用中获取值tv.getText().

始终检查解析器是否可以处理textView.getText().toString()可提供的可能值.NumberFormatException如果您尝试解析空字符串(""),则抛出A. 或者,如果您尝试解析..

String tvValue = tv.getText().toString();

if (!tvValue.equals("") && !tvValue.equals(......)) {
    int num1 = Integer.parseInt(tvValue);
}
Run Code Online (Sandbox Code Playgroud)


fen*_*nix 7

TextView tv = (TextView)findviewbyID(R.id.textView);
int num = Integer.valueOf(tv.getText().toString());
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记捕获异常,因为 TextView 中的文本可能不是有效数字。 (3认同)