Не удалось выполнить метод Activity - PullRequest
2 голосов
/ 30 марта 2012

Ну, у меня есть набор кнопок, и их свойство onClick "click", как это 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
    }
}

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

Вот журнал:

03-30 22: 23: 20.129: E / AndroidRuntime (1240): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: главное 03-30 22: 23: 20.129: E / 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): на android.view.View.performClick (View.java:3511) 03-30 22: 23: 20.129: E / AndroidRuntime (1240): на android.view.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): на ком.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): 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): на 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):at yadav.sanjay.calculator.CalculatorActivity.click (CalculatorActivity.java:63)

Ответы [ 3 ]

8 голосов
/ 30 марта 2012

Вызывается: java.lang.NullPointerException, Обычно это означает, что ваш персонал еще не инициализирован. Проверьте код в строке 63.

0 голосов
/ 30 марта 2012

Попробуйте изменить код в строке 63 на две отдельные строки, например, вот так.

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

Думаю, еще одна проблема, которая может быть проблемой, заключается в том, что et2 никогда не инициализировался.Убедитесь, что вы инициализировали et2.

0 голосов
/ 30 марта 2012

Проверьте, инициализирован ли ваш et2.Если вы используете findViewById(), пожалуйста, проверьте, делаете ли вы это после setContent().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...