2016-10-03 43 views
-2

當輸入無效(空,等等,都crashes.Any想法?即使有效輸入,我也會得到「無效」結果,任何人都知道爲什麼?

我已經想盡各種辦法重新安排代碼,但我不能使它發揮作用。 當有效輸入推出的應用程序工作正常

public class fourth extends AppCompatActivity { 


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


     final Button calc = (Button) findViewById(R.id.calculeaza); 
     final EditText e1 = (EditText) findViewById(R.id.inaltime); 
     final EditText e2 = (EditText) findViewById(R.id.greutate); 
     final TextView t1 = (TextView) findViewById(R.id.rezultat); 
     calc.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 


       String text = e1.getText().toString(); 
       String text2 = e2.getText().toString(); 


       if (text == (",") || text == ("") || text == ("-") || text2 == (",") || text2 == ("") || text2 == ("-")) 
       { 

        float num1 = Float.parseFloat(e1.getText().toString()); 
        float num2 = Float.parseFloat(e2.getText().toString()); 
        float sum = (num2/((num1 * num1)/10000)); 
        t1.setText(Float.toString(sum)); 

       } else { 
        t1.setText("Invalid"); 


       } 

      } 


     }); 
    } 
} 
+0

首先,要比較字符串,請使用'equals'而不是'=='。 接下來,只有當它是空字符串,昏迷或減號時,纔會嘗試將字符串轉換爲浮點。你期望如何工作? – jhamon

+0

提示:逆轉你的狀態 – jhamon

+0

定義'輸入','有效','無效','崩潰',...然後想一想你爲什麼要調用'String,toString()'這樣的問題。 – EJP

回答

0

首先,你的字符串比較是錯誤的,應使用String#equals

這樣:。

if (text.equals(",") || text.equals("") || text.equals("-") || text2.equals(",") || text2.equals("") || text2.equals("-")) 

你還沒有指定你得到的錯誤。但是我的猜測是錯誤發生在你將文本解析爲Floats的行上。如果text,,那麼這樣做是毫無意義的。

+0

謝謝大家的反饋意見,我在編碼方面顯然很不習慣,我有很多東西要學。 條件反轉的工作,也有一些打字錯誤,也導致代碼是錯誤的 - t1.setText(String.valueof(sum))工作得很好 有一個美好的一天傢伙! (弓) – lightS

+0

很高興聽到它的工作。你介意標記正確答案嗎?這可能有助於未來的谷歌搜索;) – Fastjur

+0

這裏是工作代碼(BMI計算器) https://github.com/hackingteam55/AV/blob/master/fourth.java – lightS

相關問題