无法执行Activity的方法

时间:2012-03-30 17:08:50

标签: java android button onclick

我有一组按钮,他们的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
    }
}

问题是每当我点击任何按钮时,应用程序就会停止工作(强制关闭)。

这是日志:

  

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):at   android.view.View.performClick(View.java:3511)03-30 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):at   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(Native Method)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(Native Method)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(Native Method)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:E / AndroidRuntime(1240):at   yadav.sanjay.calculator.CalculatorActivity.click(CalculatorActivity.java:63)

3 个答案:

答案 0 :(得分:8)

引起:java.lang.NullPointerException, 通常,这意味着您的员工尚未初始化。 检查第63行附近的代码。

答案 1 :(得分:0)

检查您的et2是否已初始化。如果您使用findViewById(),请检查setContent()之后是否这样做。

答案 2 :(得分:0)

尝试将第63行的代码更改为两行,如下所示。

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

我认为另一件可能是问题的事情是et2从未被初始化。确保已初始化et2。