2012-03-30 2 views
2

Ну, у меня есть набор кнопок, и их свойство onClick «нажмите» вот так android:onClick="click". Я запускаю это в android 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 
    } 
} 

Проблема заключается в том, что всякий раз, когда я нажимаю любую кнопку, приложение перестает работать (Force Close).

Вот Лог:

03-30 22: 23: 20,129: Е/AndroidRuntime (1240): неустранимым: Главный 03-30 22: 23: 20,129: Е/AndroidRuntime (1240) : java.lang.IllegalStateException: Не удалось выполнить метод операции 03-30 22: 23: 20.129: E/AndroidRuntime (1240): at android.view.View $ 1.onClick (View.java:3044) 03 -30 22: 23: 20.129: E/AndroidRuntime (1240): at 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): at android.os.Handler.handleCallback (Handler.java:605) 03-30 22: 23: 20,129: Е/AndroidRuntime (1240): в android.os.Handler.dispatchMessage (Handler.java:92) 03-30 22: 23: 20,129: Е/AndroidRuntime (1240): в
android.os.Looper.loop (Looper.java:137) 03-30 22: 23: 20.129: E/AndroidRuntime (1240): at android.app.ActivityThread.main (ActivityThread.java:4424) 03-30 22: 23: 20.129: E/AndroidRuntime (1240): at java.lang.reflect.Method.invokeNative (родной метод) 03-30 22: 23: 20.129: E/AndroidRuntime (1240): at java .lang.reflect.Method.invoke (Method.java:511) 03-30 22: 23: 20.129: E/AndroidRuntime (1240): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit. java: 784) 03-30 22: 23: 20.129: E/AndroidRuntime (1240): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:551) 03-30 22: 23: 20.129 : E/AndroidRuntime (1240): at 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): at java.lang.reflect.Method.invokeNative (родной метод) 03-30 22: 23: 20.129: E/AndroidRuntime (1240): at java.lang.reflect.Method.invoke (Method.java:511) 03-30 22: 23: 20.129: E/AndroidRuntime (1240): at 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: Е/AndroidRuntime (1240): в yadav.sanjay.calculator.CalculatorActivity.click (CalculatorActivity.java:63)

+0

'click()' должно быть 'onClick()'. –

+2

Что находится в строке 63 вашего CalculatorActivity.java? –

+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.

Смежные вопросы