Android AppBreaking方法调用

时间:2013-11-04 16:29:55

标签: android logcat android-logcat

我有一个名为Checker的方法,当我点击按钮但我的应用程序停止工作时会调用它。我尝试添加try catch来查看异常,但我无法理解为什么它不起作用... 在方法下面我把错误的日志cat:

 public void Checker()
{
   EditText text = (EditText) findViewById(R.id.editText1);

    int in = Integer.parseInt(text.getText().toString());

    try{
    if(MainActivity.result == in)
    {
        ProgressBar bar = (ProgressBar) findViewById(R.id.seekBar1);
        MainActivity.progress = (MainActivity.progress + 1);
        bar.setProgress(MainActivity.progress);
    }

    else
    {

        text.setBackgroundColor(Color.RED);
    }
    }catch(Exception e){System.out.println(e);}
   }

logcat的:

FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not find a method Checker(View) in the activity     class com.taffatech.kidsapp.GameActivity for onClick handler on view class     android.widget.Button with id 'btnQuestion'

at android.view.View$1.onClick(View.java:3090)
at android.view.View.performClick(View.java:3574)
at android.view.View$PerformClick.run(View.java:14293)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4441)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
at dalvik.system.NativeStart.main(Native Method)

HERE:
Caused by: java.lang.NoSuchMethodException: Checker [class android.view.View]
at java.lang.Class.getConstructorOrMethod(Class.java:460)
at java.lang.Class.getMethod(Class.java:915)
at android.view.View$1.onClick(View.java:3083)

2 个答案:

答案 0 :(得分:0)

您视图上的侦听器设置可能有错误

尝试通过代码设置监听器

来做到这一点

喜欢

    Button btn = (Button) findViewById(R.id.button);
    btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Checker();
        }
    });

答案 1 :(得分:0)

我不知道你在哪里调用这种方法,但似乎应用程序正在寻找:

void Checker(View)

但你正在实施这个:

void Checker()

您是否已调试应用程序,以确保它正在输入您创建的方法?

另一件事是,您应该按照惯例名称以小写字母开头的Java方法。我认为这不是问题,但你应该习惯。

希望这有帮助