关于android:如何使用Float调用setText()?

How to call setText() using a Float?

本问题已经有最佳答案,请猛点这里访问。

我试图使用浮点数调用setText(),但它似乎不起作用可以帮助我解决问题吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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计算器,但是我在使它工作方面遇到问题


您应该将float转换为String

1
r.setText(String.valueOf(result));

还是快速而肮脏的方式

1
r.setText("" + result);

如果要本地化(点或逗号分隔的十进制数字)

1
2
String text = NumberFormat.getInstance(YOURCONTEXT.getResources().getConfiguration().locale).format(result);
r.setText(text);

如果您在MainActivity中,则将YOURCONTEXT替换为MainActivity.this;如果您在Fragment中,则将getActivity()替换为

如果要设置最小或最大小数位数,请尝试以下操作:

1
2
3
4
5
6
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);


为了在TextView中显示浮点值,您需要先将其转换为String。

您可以使用String.valueOf(value)方法将任何原始数据类型(int,float,double,boolean等)转换为String。

此处的value是要转换为String的变量。

您可以使用

1
2
String str = String.valueOf(result);
r.setText(str);

或者

1
r.setText(String.valueOf(result));

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


您可以使用

1
r.setText(String.valueOf(result));