2012-02-14 11 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

感謝。さて、別の質問に答えることができますか、私はむしろ別のスレッドを作ってはいけません。私の次の仕事は等価なボタンをコーディングすることです。 +、 - 、*、/ボタンが押されたかどうかをテストしてから何かをしたいのですが。 { \t \t \t \t \t \t \t \t \t \t \t \t \t(真R.id.bAdd ==)場合:これは私がこれまで持っているものですが、それは動作しません: – recheej

+0

ケースR.id.bEqualを \t \t \t \t \t \t} – recheej

+1

新しい質問をしてください。 – shift66

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; 
関連する問題