如何使用Float调用setText()?

时间:2014-05-21 18:40:22

标签: android settext

我试图使用浮点调用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计算器就像练习一样但是我在制作它时遇到了问题

3 个答案:

答案 0 :(得分:2)

您应该通过

将您的浮动转换为String
r.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));

如果需要进一步的帮助,请发表评论。