2012-02-22 1 views
0

완료 실행되지 않습니다. 그러나 계산기가 시작되지 않습니다. 나는 logcat을 게시 할 것이지만 그렇게하는 방법을 모른다. 여기 내 코드입니다 :안드로이드 계산기는 마침내 너무 오래 후 내 안드로이드 계산기를 코딩

///////////////////////////////////////// 여기

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> 

그리고 여기에 로그 캣 링크입니다 : http://textsnip.com/529359

도와주세요.

+0

은 어떻게 로그 캣을 추출 했습니까? – CustomX

+0

String display1 = display.getText(). toString(); double displayValue = Double.parseDouble (display1); xml에 텍스트로 디스플레이가 초기화됩니까? – jsaye

+0

일이 읽고 정말 어색 시간 옆에 줄 바꿈의 미친 양 ... – Nanne

답변

0

표시가 null 그래서 .... 당신은 로그 캣 거기는 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

을 시도합니다. 다음 코드가 null를 돌려주는 경우

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

: 문제는이 라인에있을

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

확인 당신이 올바른 제어에 발견 할 경우 할당 이유는

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

은 어떤 방법 (클래스 할당)에도 포함되어 있지 않으므로 LogCat은 오류의 위치를 ​​표시하지 않습니다.

관련 문제