2013-05-20 91 views
0

我正在嘗試製作一個應用程序來計算給定人的所得稅。有一個EditText字段,用戶必須指出他的月工資,然後在MainActivity.java中進行計算。問題是 - 當我嘗試使用給定的輸入字段進行一些數學運算時,出現錯誤The operator * is undefined for the argument type(s) EditText, double如何檢查Android EditText整數值?

wage = (EditText) findViewById(R.id.wage); 
submit.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      wageAfterTax = wage * 0.25; 
      result.setText("Your wage after tax deductions is " + wageAfterTax); 
     } 
    }); 

請問您能建議該怎麼做?

回答

4

wage是對EditText對象的引用。您需要從中獲取文本並將其轉換爲數字。

wage = (EditText) findViewById(R.id.wage); 
submit.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     String wageText = wage.getText().toString(); 
     double wageAmount = Double.valueOf(wageText); 
     wageAfterTax = wageAmount * 0.25; 
     result.setText("Your wage after tax deductions is " + wageAfterTax); 
    } 
}); 
+0

謝謝,那是乾的:) – Xeen

+0

好吧,差不多。 「雙」並不是處理金錢的最佳數據類型。我會建議BigDecimal,以避免舍入錯誤。 – GreyBeardedGeek