我试图使用浮点调用setText(),但dosnt似乎工作可以somone帮助我解决问题?
public class Bmi extends MainActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bmi);
final EditText h = (EditText)findViewById(R.id.editText2);
final EditText w = (EditText)findViewById(R.id.editText3);
final TextView r = (TextView)findViewById(R.id.textView4);
Button calculate = (Button) findViewById(R.id.button1);
calculate.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
float height=0;
float weight=0;
float result=0;
height= Float.parseFloat(h.getText().toString());
weight= Float.parseFloat(w.getText().toString());
result = (weight/(height * height));
r.setText(result);
}
});
}
}
我试着制作一个简单的bmi计算器就像练习一样但是我在制作它时遇到了问题
答案 0 :(得分:2)
您应该通过
将您的浮动转换为Stringr.setText(String.valueOf(result));
或快速而肮脏的方式
r.setText("" + result);
如果你想要它本地化(点或逗号分隔十进制数)
String text = NumberFormat.getInstance(YOURCONTEXT.getResources().getConfiguration().locale).format(result);
r.setText(text);
如果您在MainActivity中,只需将YOURCONTEXT
替换为MainActivity.this
,如果您在片段中,则getActivity()
如果您想设置最小或最大分数,请尝试:
NumberFormat numberformat = NumberFormat.getInstance(YOURCONTEXT.getResources().getConfiguration().locale);
numberformat.setMaximumFractionDigits(2);
numberformat.setMaximumIntegerDigits(1);
numberformat.setMinimumFractionDigits(2);
String text = numberformat.format(result);
r.setText(text);
答案 1 :(得分:0)
您可以使用
r.setText(String.valueOf(result));
答案 2 :(得分:0)
要在 TextView 中显示 float 值,您需要先将其转换为 String 。
您可以使用String.valueOf( value )方法将任何基本数据类型(int,float,double,boolean等)转换为String。
此处 value 是您要转换为 String 的变量。
您可以使用
String str = String.valueOf(result);
r.setText(str);
可选地
r.setText(String.valueOf(result));
如果需要进一步的帮助,请发表评论。