Android Studio ThermoCalc Fahrenheit到Celsius反之亦然

时间:2015-03-16 00:42:17

标签: java android android-studio

我目前正在Android Studio中编程创建一个" ThermoCalc"。基本上我需要将华氏温度转换为摄氏温度,反之亦然。我的问题是我的计算结果是一样的,我的编码中有一些错误,也许它不应该是什么?希望有人能提供帮助。我是编码和慢慢学习的新手。任何反馈都表示赞赏。谢谢

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText etTemp = (EditText) findViewById(R.id.txtTemperature);
    final TextView tvOutput = (TextView) findViewById(R.id.lblOutput);
    final RadioButton radFahToCelLogic = (RadioButton) findViewById(R.id.radFahToCel);
    final RadioButton radCelToFahLogic = (RadioButton) findViewById(R.id.radCelToFah);

    Button btnConvertLogic = (Button) findViewById(R.id.btnConvert);
    btnConvertLogic.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            double dblFahrenheit = 0;
            double dblCelcius = (5.0/9) * (dblFahrenheit -32);
            double dblConvertedTemp = 0;
            double dblFahConversion;

            // format
            DecimalFormat dfTenth = new DecimalFormat("#.#");


            if (radFahToCelLogic.isChecked())
            {
                if (dblFahrenheit <= 212)
                {
                    dblConvertedTemp = (5.0/9.0) * (dblFahrenheit - 32);
                    tvOutput.setText (dfTenth.format(dblConvertedTemp));
                }
            }

        }
    });

我认为这个问题与我的dblFahrenheit设置为&#34; 0&#34;有关。

因此,基本上在我的应用程序运行的模拟器中,我有一个EditText小部件,您可以在其中输入温度,TextView小部件用于显示输出,以及两个单选按钮位于RadioGroup中。

在我的if语句中,我正在检查输入的温度是否等于或小于212.如果是,那么我需要将输入的温度从华氏温度转换为摄氏温度。

在运行我的应用程序时,无论我在EditText(温度)中放入什么号码,答案总是&#34; 17.8&#34;。

1 个答案:

答案 0 :(得分:1)

看起来你只是忘了使用输入。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final EditText etTemp = (EditText) findViewById(R.id.txtTemperature);
final TextView tvOutput = (TextView) findViewById(R.id.lblOutput);
final RadioButton radFahToCelLogic = (RadioButton) findViewById(R.id.radFahToCel);
final RadioButton radCelToFahLogic = (RadioButton) findViewById(R.id.radCelToFah);

Button btnConvertLogic = (Button) findViewById(R.id.btnConvert);
btnConvertLogic.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        double dblFahrenheit = 0;
        double dblCelcius = (5.0/9) * (dblFahrenheit -32);
        double dblConvertedTemp = 0;
        double dblFahConversion;

        // format
        DecimalFormat dfTenth = new DecimalFormat("#.#");


        if (radFahToCelLogic.isChecked())
        {
            String strFah = etTemp.getText().toString();
            if (!strFah.isEmpty()){

              dblFahrenheit = Double.parseDouble(strFah);

              if (dblFahrenheit <= 212)
              {
                dblConvertedTemp = (5.0/9.0) * (dblFahrenheit - 32);
                tvOutput.setText (dfTenth.format(dblConvertedTemp));
              }
            }
        }

    }
});