2 votes

Impossible d'exécuter la méthode de l'activité

J'ai un ensemble de boutons et leurs onClick est "click" comme ceci android:onClick="click" . Je l'exécute sous Android 2.2

Voici la fonction click dans l'activité principale. Cette fonction est en dehors de l'activité onCreate comme prévu.

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
    }
}

Le problème est que dès que je clique sur un bouton, l'application cesse de fonctionner (fermeture forcée).

Voici le journal :

03-30 22:23:20.129 : E/AndroidRuntime(1240) : FATAL EXCEPTION : main 03-30 22:23:20.129 : E/AndroidRuntime(1240) : java.lang.IllegalStateException : Impossible d'exécuter la méthode de l'activité l'activité 30-03 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) 30-03 22:23:20.129 : E/AndroidRuntime(1240) : at Android.view.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 : E/AndroidRuntime(1240) : at 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) : at Android.app.ActivityThread.main(ActivityThread.java:4424) 03-30 22:23:20.129 : E/AndroidRuntime(1240) : at java.lang.reflect.Method.invokeNative(Méthode native) 03-30 22:23:20.129 : E/AndroidRuntime(1240) : à java.lang.reflect.Method.invoke(Method.java:511) 30-03 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(Méthode native) 30-03 22:23:20.129 : E/AndroidRuntime(1240) : Causé par : java.lang.reflect.InvocationTargetException 03-30 22:23:20.129 : E/AndroidRuntime(1240) : at java.lang.reflect.Method.invokeNative(Méthode native) 03-30 22:23:20.129 : E/AndroidRuntime(1240) : à java.lang.reflect.Method.invoke(Method.java:511) 30-03 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 plus 30-03 22:23:20.129 : E/AndroidRuntime(1240) : Causé par : java.lang.NullPointerException 03-30 22:23:20.129 : E/AndroidRuntime(1240) : at yadav.sanjay.calculator.CalculatorActivity.click(CalculatorActivity.java:63)

8voto

antonio081014 Points 984

Causé par : java.lang.NullPointerException, En général, cela signifie que votre personnel n'est pas encore initialisé. Vérifiez le code autour de la ligne 63.

0voto

Tiago Almeida Points 4043

Vérifiez si votre et2 est officialisé. Si vous utilisez findViewById() veuillez vérifier si vous faites cela après le setContent() .

0voto

JXPheonix Points 507

Essayez de changer le code de la ligne 63 en deux lignes séparées, comme ceci.

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

Je pense qu'une autre chose qui pourrait être le problème est que et2 n'a jamais été initialisé. Assurez-vous que vous avez initialisé et2.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X