2012-02-14 106 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;