2012-02-14 55 views
0

我該如何做到這一點,所以當我引用display1變量時,我指的是double,而不是字符串?該程序仍將字符串引用爲display1。我想要雙。同名字符串變量和雙變量是不同的?

[code] 
package rechee.cool; 

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

public class HelloAndroidActivity extends Activity { 
    /** Called when the activity is first created. */ 

    double counter1=0; 
    double counter2=0; 



    public EditText display; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     // Associate the button variable with the xml reference 



     display= (EditText) findViewById(R.id.editText1);} 
      // 

      //// 

//////////////////////////////

  public void onClick(View v) { 
       switch(v.getId()){ 
        case R.id.bOne: 
        display.append("1"); 
         break; 
        case R.id.bTwo: 

         display.append("2"); 
         break; 
        case R.id.bThree: 
         display.append("3"); 
         break; 
        case R.id.bFour: 
         display.append("4"); 
         break; 
        case R.id.bFive: 
         display.append("5"); 
         break; 
        case R.id.bSix: 
         display.append("6"); 
         break; 

        case R.id.bSeven: 
         display.append("7"); 
         break; 
        case R.id.bEight: 
         display.append("8"); 
         break; 
        case R.id.bNine: 
         display.append("9"); 
         break; 
        case R.id.bZero: 
         display.append("0"); 
         break; 
        case R.id.bPoint: 
         display.append("."); 
         break; 
        case R.id.bClear: 
         display.setText(""); 
         break; 
        case R.id.bAdd: 
         // to get string of EditText 
         String display1= display.getText().toString(); 
         Double.parseDouble(display1); 
         //to test if display1 is double 
         counter1+= display1; 
[/code] 

幫助將非常感激。

回答

1
 String display1= display.getText().toString(); 
     try { 
      double dDisplay1 = Double.parseDouble(display1); 
      //to test if display1 is double 
      counter1+= dDisplay1; 

     } catch (NumberFormatException e) { 

      //if couldn't parse to double it will throw 
      //this (NumberFormatException) exception and you can catch it 
      //print something like "text is not double" or do whatever you want. 
     } 
+0

感謝。現在,你能否回答另一個問題,我寧願不做另一個線索。我的下一個任務是編寫相等的按鈕。我希望能夠測試+, - ,*或/按鈕是否被按下,然後執行某些操作。這是我到目前爲止,但它不工作: – recheej 2012-02-14 05:35:23

+0

情況下R.id.bEqual: \t \t \t \t \t \t如果(R.id.bAdd ==真){ \t \t \t \t \t \t \t \t \t \t \t \t \t} – recheej 2012-02-14 05:35:30

+1

問一個新問題,並顯示您的代碼。 – shift66 2012-02-14 06:17:14

0

您需要將Double.parseDouble()的結果賦給變量,或者以某種方式使用該表達式的結果,現在該方法調用對您的代碼沒有影響。

變化:

String display1= display.getText().toString(); 
Double.parseDouble(display1); 
//to test if display1 is double 
counter1+= display1; 

要:

String display1= display.getText().toString(); 
double displayValue = Double.parseDouble(display1); 
counter1+= displayValue;