2013-05-10 28 views
0

我對Android應用程序開發相當陌生,只是學習製作一些簡單的應用程序。所以我決定製作一個BMI計算器。我做了一個界面,用戶將使用微調器選擇單位的高度和重量。然後,點擊按鈕後,我會將EditText上的值的字符串解析爲double。也可以獲得用戶選擇的旋轉器項目(它們是高度和重量的單位)。我設法通過使用setText得到正確的值,並返回用戶輸入的值和單位。但是,這些價值並沒有按照我想要的方式轉變。 if-else語句在這裏可能是錯誤的。Android:這些值未被轉換爲千克和米的等效值

package com.dirk.myfirstapp; 

    import android.app.Activity; 
    import android.os.Bundle; 
    import android.view.Menu; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.Spinner; 
    import android.widget.TextView; 

    public class MainActivity extends Activity { 

     TextView output; 
     EditText weightInput, heightInput; 
     Button calculate; 
     double height, weight, BMI; 
     String heightInputString, weightInputString, weightUnit, heightUnit; 
     Spinner heightUnitSpinner, weightUnitSpinner; 


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

      Button calculate = (Button) findViewById(R.id.button1); 
      output = (TextView) findViewById(R.id.textView4); 
      weightInput = (EditText) findViewById(R.id.editText1); 
      heightInput = (EditText) findViewById(R.id.editText2); 
      heightUnitSpinner = (Spinner) findViewById(R.id.spinnerHeight); 
      weightUnitSpinner = (Spinner) findViewById(R.id.spinnerWeight); 

      calculate.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 

        //PARSE STRINGS 
        heightInputString = heightInput.getText().toString(); 
        height = Double.parseDouble(heightInputString); 
        weightInputString = weightInput.getText().toString(); 
        weight = Double.parseDouble(weightInputString); 
        weightUnit = weightUnitSpinner.getSelectedItem().toString(); 
        heightUnit = heightUnitSpinner.getSelectedItem().toString(); 

        // CONVERT FIRST TO SI UNITS 

        // CONVERT WEIGHT TO kilogrammes 
        if (weightUnit == "lbs") { 
         weight = weight * 0.453592; 
        } 
        // CONVERT HEIGHT TO meters 
        if (heightUnit == "cm") { 
       height = height/100; 
        } else if (heightUnit == "in") { 
         height = height * 0.0254; 
        } 

        BMI = weight/(height * height); 
        output.setText("Your BMI is " + BMI); 


       } 
      }); 

     } 



    } 
+0

‘值不轉換我想要的方式’你能告訴我們他們是如何轉換的?真的很難理解..結果是什麼? – 2013-05-10 18:51:45

回答

1

當您比較字符串時使用Object.equals(「string」);比較。不要使用「==」」

例:

// CONVERT HEIGHT TO meters 
        if (heightUnit.equals("cm")) { 
       height = height/100; 
        } else if (heightUnit.equals("in")) { 
         height = height * 0.0254; 
        }