代码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中的“ __”有区别
答案 0 :(得分:1)
代码1使用方法setText(CharSequence text)
“设置要显示的文本”。
代码2使用方法setText(int resid)
,该方法“使用字符串资源标识符设置要显示的文本”。您的电话号码很可能不是有效的字符串资源标识符,这会给您带来错误。即使是这样,显示的字符串也与您要显示的数量无关。
答案 1 :(得分:0)
在TextView
中,您只能设置String(CharSequence)
的值,而您的 number 数据类型在int
中,如果您这样做,将不会显示任何错误:
public void displayQuantity(int number) {
TextView quantityTV = (TextView) findViewById(R.id.quantity_tv);
quantityTV.setText(String.valueOf(number));
}
答案 2 :(得分:0)
number是int类型,+运算符会自动将其转换为String。(“”为空String)
答案 3 :(得分:0)
尝试在代码2中使用number.toString() 因为您正在使用
中的int进行字符串连接