假设我将等级栏的第一个值设置为1,第二个值也设置为1,它不等于2,而是显示1.01.0。这是怎么回事?
RatingBar r1,r2;
Button submit;
r1 = (RatingBar) findViewById(R.id.ratingBar1);
r2 = (RatingBar) findViewById(R.id.ratingBar2);
submit = (Button) findViewById(R.id.submit);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MyActivity.this, String.valueOf(r1.getRating())+String.valueOf(r2.getRating()), Toast.LENGTH_SHORT).show(); //shows 1.01.0
}
});
最佳答案
这是因为您将+
与String对象和int一起使用。 String的+运算符具有串联的含义。您想要的是将这些值求和,然后将其转换为String。从
String.valueOf(r1.getRating())+String.valueOf(r2.getRating())
至
String.valueOf(r1.getRating() + r2.getRating())