Code 1:
public void displayQuantity(int number) {
TextView quantityTV = (TextView) findViewById(R.id.quantity_tv);
quantityTV.setText( " "+ number);
}
代码 2:
public void displayQuantity(int number) {
TextView quantityTV = (TextView) findViewById(R.id.quantity_tv);
quantityTV.setText(number);
}
为什么代码 2 给出错误而代码 1 没有?黑白代码 1 和 2<</p>
文档
代码 1 使用"设置要显示的文本"的方法setText(CharSequence text)
。
代码 2 使用"使用字符串资源标识符设置要显示的文本"的方法setText(int resid)
。您的号码很可能不是有效的字符串资源标识符,这会给您带来错误。即使是这样,显示的字符串也与要显示的数量无关。
在TextView
中,您只能设置String(CharSequence)
值,并且您的数字数据类型为int
如果您这样做,它不会显示任何错误:
public void displayQuantity(int number) {
TextView quantityTV = (TextView) findViewById(R.id.quantity_tv);
quantityTV.setText(String.valueOf(number));
}
数字是 int 类型,+ 运算符会自动将其转换为字符串。
+ Java 中字符串的运算符
在代码 2 中尝试 number.toString()因为您正在与 int 进行字符串连接