2012-02-22 47 views
0

私はついにAndroid計算機のコーディングを終了しました。しかし、電卓は始動しません。私はlogcatを投稿するだろうが、私はそうする方法を知らない。ここに私のコードは次のとおりです。Android Calculatorは実行されません

/////////////////////////////////////////ここで

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. */ 
    public EditText display; 

    double total1=0.0; 
    double total2=0.0; 
    char theOperator; 
    public String buttonText; 
    public Button ButtonAdd, ButtonEqual, ButtonMultiply, ButtonDivide, ButtonMinus; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     display= (EditText) findViewById(R.id.editText1); 
     } 

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

     public void getOperator(String btnText){ 
      theOperator = btnText.charAt(0); 



      total1+=displayValue; 
      display.setText(""); 
     } 


      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: 
         buttonText="+"; 
         ButtonAdd= (Button)findViewById(R.id.bAdd); 

         ButtonAdd.setText(buttonText); 


         getOperator(buttonText); 
         break; 
        case R.id.bMinus: 
         buttonText="-"; 
         ButtonMinus= (Button)findViewById(R.id.bMinus); 
         ButtonMinus.setText(buttonText); 
         getOperator(buttonText); 
         break; 
        case R.id.bMultiply: 
         buttonText="*"; 
         ButtonMultiply= (Button)findViewById(R.id.bMultiply); 
         ButtonMultiply.setText(buttonText); 
         getOperator(buttonText); 
         break; 
        case R.id.bDivide: 
         buttonText="/"; 
         ButtonDivide= (Button)findViewById(R.id.bDivide); 
         ButtonDivide.setText(buttonText); 
         getOperator(buttonText); 
         break; 
        case R.id.bEqual: 

         switch (theOperator){ 
         case '+': 
         total2= total1 + displayValue; 
         break; 
         case '-': 
         total2= total1 - displayValue; 
         break; 
         case '*': 
         total2= total1 * displayValue; 
         break; 
         case '/': 
         total2= total1/displayValue; 

         break; 


         } 
         display.setText(Double.toString(total2)); 
         total1=0; 

         } 

         } 


} 

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

はマニフェストです:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="rechee.cool" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="10" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".HelloAndroidActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

そして、ここでlogcatへのリンクです: http://textsnip.com/529359

私を助けてください。

+0

logcatをどのように抽出しましたか? – CustomX

+0

文字列display1 = display.getText()。toString(); double displayValue = Double.parseDouble(display1); xmlにテキストでディスプレイが初期化されていますか? – jsaye

+0

次回改行の狂気の量を制限してください。これは読んで本当に厄介です。 – Nanne

答えて

0

表示がnullであるので....あなたはLogCatであり、NullPointerExceptionが持っているこの

String display1; 
double displayValue; 

    @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      display= (EditText) findViewById(R.id.editText1); 

     if(display.length()!=0){ 
      display1= display.getText().toString(); 
      displayValue= Double.parseDouble(display1); 
      } 

     } 
+0

それはうまくいきました。どうもありがとう。しかし、今では私のプログラムは合計0.0を出力しています。私はしばらくそれについて仕事をするだろうと思う。 – recheej

+0

あなたはもっと簡単なので自分でもっと努力してみてください... –

0

を試してみてください。問題は、このラインで次のようになります。

String display1= display.getText().toString(); 

次のコードは、nullを返した場合:

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

チェックあなたが割り当てているため、正確な制御に見つけない場合:

String display1= display.getText().toString(); 

はどのメソッド(クラスの割り当て)にもありません。そのため、LogCatはエラーがどこにあるかを表示しません。

関連する問題