【问题标题】:How to call setText() using a Float? [duplicate]如何使用浮点数调用 setText()? [复制]
【发布时间】:2014-05-21 18:40:21
【问题描述】:

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

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 计算器作为练习,但我在使其工作时遇到了问题

【问题讨论】:

  • r.setText("" + result);

标签: android settext


【解决方案1】:

您应该通过

将您的浮点数转换为字符串
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,如果您在 Fragment 中,则替换为 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);

【讨论】:

    【解决方案2】:

    你可以使用

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

    【讨论】:

      【解决方案3】:

      为了在 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));
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多