为什么会这样(请参阅下面的两个代码示例)



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>

div class="one_answers" 中存在 - "__" 的差异> 根据

文档

代码 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 进行字符串连接

最新更新