2012-03-30 4 views
2

음 버튼 집합이 있으며 onClick 속성은 android:onClick="click"처럼 "클릭"속성입니다. 나는 이것을 안드로이드 2.2에서 실행 중입니다.활동 방법을 실행할 수 없습니다.

주요 활동의 클릭 기능은 다음과 같습니다. 이 함수는 예상대로 onCreate 메서드 외부에 있습니다.

public void click(View v) 
{ 
    String s = et2.getText().toString(); 

    switch(v.getId()) 
    { 
     case R.id.b0 :  
      if(s.length() == 1 && s.charAt(0) == '0') 
      { 
       et2.setText("0"); 
       et1.setText("0"); 
      } 
      else 
      { 
       s = s + "0"; 
       call(s); 
      } 
     break; 
     //Other cases 
    } 
} 

아무 버튼이나 클릭 할 때마다 앱이 작동을 멈 춥니 다 (강제 종료).

03-30 22 : 23 : 20.129 : E가/AndroidRuntime (1240) FATAL EXCEPTION : 여기

로그 메인 03-30 22 : 23 : 20.129/AndroidRuntime (1240) E : java.lang.IllegalStateException : 메서드를 실행할 수 없습니다. 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : android.view.View $ 1.onClick (View.java:3044) 03 -30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : android.view.View.performClick (View.java:3511) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : at android.vie w.View $ PerformClick.run (View.java:14105) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : android.os.Handler.handleCallback (Handler.java:605) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) android.os.Handler.dispatchMessage (Handler.java:92)에서 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240)에서
android.os.Looper.loop (Looper.java:137) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : android.app.ActivityThread.main (ActivityThread.java:4424) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : 에서 java.lang.reflect.Method.invokeNative (기본 메소드) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : 에서 java .lang.reflect.Method.invoke (Method.java:511) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : 에서 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit. java : 784) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : com.android.internal.os.ZygoteInit.main (ZygoteInit.java:551) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : 에서 dalvik.system.NativeStart.main (기본 메소드) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : 원인 : java.lang.reflect.InvocationTargetException 03 -30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : 에서 java.lang.reflect.Method.invokeNative (기본 메소드) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : java.lang.reflect.Method.invoke (Method.java:511) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : android.view.View $ 1.onClick (View.java:3039) 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : ... 11 자세히 03-30 22 : 23 : 20.129 : E/AndroidRuntime (1240) : 원인 : java.lang.NullPointerException 03 -30 22 : 23 : 20.129 : E/AndroidRuntime (1240) yadav.sanjay.calculator.CalculatorActivity.click (CalculatorActivity.java:63)에서

+0

'click()'은 (는)'onClick()'이어야합니다. –

+2

CalculatorActivity.java의 온라인 63은 무엇입니까? –

+0

라인 63 :'String s = et2.getText(). toString();' – Exorcist

답변

8

의해 발생 : java.lang.NullPointerException이 일반적 , 이는 직원이 아직 초기화되지 않았 음을 의미합니다. 라인 63 코드를 확인하십시오.

0

et2이 인화되었는지 확인하십시오.findViewById()을 사용하는 경우 setContent() 이후에 확인하십시오.

0

63 행의 코드를 두 줄로 변경해보십시오.

String s; //you should probably change s to something less common like calS or the like 
s = et2.getText().toString(); 

다른 문제는 et2가 초기화되지 않았다고 생각합니다. et2를 초기화했는지 확인하십시오.

관련 문제