TextView.setText(int)导致应用程序崩溃

时间:2017-01-06 17:12:04

标签: java android textview

我在Android Studio中实现了以下Java代码:

private void display(int number) {
    TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view);
    quantityTextView.setText(number);
    ...
}

这是大型应用程序的一部分。

如您所见,我只向quantityTextView.setText(number)方法传递了一个整数值。

运行应用程序时,一旦调用此方法,它就会崩溃。你能告诉我为什么会这样吗?

6 个答案:

答案 0 :(得分:3)

是的,请使用String.valueOf(),如下所示:

private void display(int number) {
    TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view);
    quantityTextView.setText(String.valueOf(number));
}

答案 1 :(得分:3)

因为chrome.webRequest只接受字符串值或setText()的资源ID(实际上是int)。

点击此处:setText() Method

您可以使用String作为String.valueOf(number);的输入参数,或者您可以使用setText()作为输入值来引用XML中的字符串ID。

答案 2 :(得分:1)

将整数转换为字符串,然后将其放入TextView:

quantityTextView.setText(Integer.toString(number));

或只是

quantityTextView.setText(number+"");

答案 3 :(得分:1)

代码崩溃的原因是setText(int) expects a resource ID。它没有很好的文档记录,因此您可以原谅我认为您可以将整数传递给它并让TextView将其转换为文本。

您应该首先将其转换为String,例如:

String.valueOf(number)

然后就没事了。

答案 4 :(得分:0)

TextView的setText()方法接受CharSequence,而不是整数。因此,您必须先将您的号码转换为String。

尝试使用它:

this.nameSelectedVal = "-1"

答案 5 :(得分:0)

原因是,setText()只需要string或char []。

因此,您可以执行类型转换,也可以添加数字

的引号

(1)。通过类型铸造 将String.valueOf(数)

(2)。通过添加""随着号码 quantityTextView.setText("&#34 +号); 要么 quantityTextView.setText(数+"&#34);