단순한 계산기를 만드는데 그정보를 스트링으로 저장해서 연산내용을 계속 기억할수 있도록 하려고 합니다.
자체에선 오류가 생기지 않는데 눌포인트 익셉션이 생겨요. 이걸 어떻게 해결해야할지 모르겠습니다. 혹시 몰라 xml파일도 첨부합니다.
이게 로그캣에서 가져온 것이고
03-03 14:57:31.399: WARN/dalvikvm(224): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
03-03 14:57:31.409: ERROR/AndroidRuntime(224): Uncaught handler: thread main exiting due to uncaught exception
03-03 14:57:31.468: ERROR/AndroidRuntime(224): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{hw1.hw1/hw1.hw1.hw1Activity}: java.lang.NullPointerException
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2402)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2497)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1848)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at android.os.Looper.loop(Looper.java:123)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at android.app.ActivityThread.main(ActivityThread.java:4338)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at java.lang.reflect.Method.invokeNative(Native Method)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at java.lang.reflect.Method.invoke(Method.java:521)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at dalvik.system.NativeStart.main(Native Method)
03-03 14:57:31.468: ERROR/AndroidRuntime(224): Caused by: java.lang.NullPointerException
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at android.app.Activity.findViewById(Activity.java:1612)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at hw1.hw1.hw1Activity.<init>(hw1Activity.java:25)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at java.lang.Class.newInstanceImpl(Native Method)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at java.lang.Class.newInstance(Class.java:1479)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2394)
03-03 14:57:31.468: ERROR/AndroidRuntime(224):     ... 11 more
이부분이 코드입니다.
package hw1.hw1;

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


public class hw1Activity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    boolean flag=false;
    int operation=0;
    int first=0;
    int second=0;
    int answer=0;
    String history="";
    String number1="";
    String number2="";
    EditText fld=(EditText)findViewById(R.id.cal);
   
    public void onClick(View v){
     if (v.getId()==R.id.num1){
      if(operation==0){
        number1=number1+"1";
        history=history+"1";
      }
      else if(operation!=0){
       number2=number2+"1";
       history=history+"1";
      }
      fld.setText(history);
     }
     else if (v.getId()==R.id.num2){
          if(operation==0){
            number1=number1+"2";
            history=history+"2";
          }
          else if(operation!=0){
           number2=number2+"2";
           history=history+"2";
          }
          fld.setText(history);
     }
     else if (v.getId()==R.id.num3){
          if(operation==0){
            number1=number1+"3";
            history=history+"3";
          }
          else if(operation!=0){
           number2=number2+"3";
           history=history+"3";
          }
          fld.setText(history);
     }
     else if (v.getId()==R.id.num4){
          if(operation==0){
            number1=number1+"4";
            history=history+"4";
          }
          else if(operation!=0){
           number2=number2+"4";
           history=history+"4";
          }
          fld.setText(history);
     }
     else if (v.getId()==R.id.num5){
          if(operation==0){
            number1=number1+"5";
            history=history+"5";
          }
          else if(operation!=0){
           number2=number2+"5";
           history=history+"5";
          }
          fld.setText(history);
     }
     else if (v.getId()==R.id.num6){
          if(operation==0){
            number1=number1+"6";
            history=history+"6";
          }
          else if(operation!=0){
           number2=number2+"6";
           history=history+"6";
          }
          fld.setText(history);
     }
     else if (v.getId()==R.id.num7){
          if(operation==0){
            number1=number1+"7";
            history=history+"7";
          }
          else if(operation!=0){
           number2=number2+"7";
           history=history+"7";
          }
          fld.setText(history);
     }
     else if (v.getId()==R.id.num8){
          if(operation==0){
            number1=number1+"8";
            history=history+"8";
          }
          else if(operation!=0){
           number2=number2+"8";
           history=history+"8";
          }
          fld.setText(history);
     }
     else if (v.getId()==R.id.num9){
          if(operation==0){
            number1=number1+"9";
            history=history+"9";
          }
          else if(operation!=0){
           number2=number2+"9";
           history=history+"9";
          }
          fld.setText(history);
     }
     else if (v.getId()==R.id.num0){
          if(operation==0){
            number1=number1+"0";
            history=history+"0";
          }
          else if(operation!=0){
           number2=number2+"0";
           history=history+"0";
          }
          fld.setText(history);
     }
     else if (v.getId()==R.id.convert){
      if(flag==false){
      setContentView(R.layout.main2);
      flag=true;
      }
      else if(flag==true){
      setContentView(R.layout.main); 
      flag=false;
      }
      fld.setText(history);
     }
     else if (v.getId()==R.id.calculate){
      if(operation==0){      
       answer=Integer.parseInt(number1);
       number1="";
      }
      else if(operation==1){
       answer=Integer.parseInt(number1)+Integer.parseInt(number2);
       history=history+"\n="+getString(answer);
       number1="";
       number2="";
      }
      else if(operation==2){
       answer=Integer.parseInt(number1)-Integer.parseInt(number2);
       history=history+"\n="+getString(answer);
       number1="";
       number2="";
      }      
      else if(operation==3){
       answer=Integer.parseInt(number1)*Integer.parseInt(number2);
       history=history+"\n="+getString(answer);
       number1="";
       number2="";
      }     
      else if(operation==4){
       answer=Integer.parseInt(number1)/Integer.parseInt(number2);
       history=history+"\n="+getString(answer);
       number1="";
       number2="";
      }
      fld.setText(history);
     }
     else if (v.getId()==R.id.Clr){
      history="";
      fld.setText(history);
     }
     else if (v.getId()==R.id.plus){
      operation=1;
      history+="+";
      fld.setText(history);
     }
     else if (v.getId()==R.id.minus){
      operation=2;
      history+="-";
      fld.setText(history);
     }
     else if (v.getId()==R.id.mul){
      operation=3;
      history+="*";
      fld.setText(history);
     }
     else if (v.getId()==R.id.div){
      operation=4;
      history+="/";
      fld.setText(history);
     }
    }



}