我在Android Studio中实现了以下Java代码:
private void display(int number) {
TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view);
quantityTextView.setText(number);
...
}
这是大型应用程序的一部分。
如您所见,我只向quantityTextView.setText(number)
方法传递了一个整数值。
运行应用程序时,一旦调用此方法,它就会崩溃。你能告诉我为什么会这样吗?
答案 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);