我试图制作一个简单的转换器,它将2.2输入的值相乘但我在将结果转换为文本视图时遇到问题。我得到的错误说'无法解决方法setText(Double)。有什么建议吗?
public void onClick(View v) {
double result =0;
double a = Double.parseDouble(weightEntered.getText().toString().trim());
double b = 2.2;
if(v == button_convert)
{
if(lbs_kg.isChecked() == true)
result = (a * b);
t1.setText(result);
if(kg_lbs.isChecked() == true)
t1.setText("Selected is : "+kg_lbs.getText());
}
答案 0 :(得分:4)
将您的double转换为String。
这很重要,因为setText()存在于多个重载的签名中。
您在问题中使用的签名是使用字符串资源ID!您需要首先将该数字转换为String,以便TextView知道如何正确使用它。
String str = String.valueOf(result);
t1.setText(str);
答案 1 :(得分:1)
result = (a * b);
t1.setText(String.format("%.2f", result))
使用String.format()
可以控制输出值的精度。
答案 2 :(得分:0)
您需要将double值转换为字符串,因为setText()
只能为其设置文本值。
更新此行
t1.setText(result);
要
t1.setText(String.valueOf(result));