1

この例外が発生していますが、説明はまったく役に立ちません。

07-01 12:31:09.723: E/AndroidRuntime(12530): java.lang.IllegalStateException: Could not execute method of the activity

それをスローする関数のコード (特定のボタンをクリックすると発生するため) は次のとおりです。

public void go(View view){
    String ghici = litera.getText().toString();
    cuvAfisat = cuvant.getText().toString();
    litera.setText("");
    if(ghici!="")
        if(cuvAles.contains(ghici)){
            for (int poz = 0; poz < cuvAles.length(); poz ++) {
                cuvAfisat = cuvant.getText().toString();
                if (cuvAles.charAt(poz) == ghici.charAt(0)) {
                    System.out.println(poz);
                    cuvAfisat = cuvAfisat.substring(0, poz*2-1)+ ghici+ cuvAfisat.substring(poz*2+1, cuvAfisat.length());
                    System.out.println(cuvAfisat);
                    cuvant.setText(cuvAfisat);
                }
                }
        }
        else {
            gresite.append(ghici+" ");
            valIncercari--;
            incercari.setText(valIncercari+"");
            if(valIncercari == 0){
                Toast.makeText(this, "Ai pierdut :(", Toast.LENGTH_LONG).show();
                litera.setEnabled(false);
                go.setEnabled(false);

                char[] stringArray = cuvAles.toCharArray(); 
                StringBuilder sb = new StringBuilder();

                for(int index=0; index < stringArray.length; index++) {
                   sb.append(stringArray[index]);
                   sb.append(" ");
                    }
                cuvant.setText(sb);



            }
        }
}

問題は、この行が削除されたときにそれが行われないことです。したがって、これが問題であると想定していますcuvAfisat = cuvAfisat.substring(0, poz*2-1)+ ghici+ cuvAfisat.substring(poz*2+1, cuvAfisat.length());:( cuvAfisat の文字を cuvAles の文字に置き換えていますが、すべての文字の間にスペースがあるため、 poz*2 です。

事前に助けてくれてありがとう!

編集:

07-01 12:31:09.723: E/AndroidRuntime(12530): FATAL EXCEPTION: main
07-01 12:31:09.723: E/AndroidRuntime(12530): java.lang.IllegalStateException: Could not execute method of the activity
07-01 12:31:09.723: E/AndroidRuntime(12530):    at android.view.View$1.onClick(View.java:2144)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at android.view.View.performClick(View.java:2485)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at android.view.View$PerformClick.run(View.java:9080)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at android.os.Handler.handleCallback(Handler.java:587)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at android.os.Looper.loop(Looper.java:123)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at android.app.ActivityThread.main(ActivityThread.java:3683)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at java.lang.reflect.Method.invokeNative(Native Method)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at java.lang.reflect.Method.invoke(Method.java:507)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at dalvik.system.NativeStart.main(Native Method)
07-01 12:31:09.723: E/AndroidRuntime(12530): Caused by: java.lang.reflect.InvocationTargetException
07-01 12:31:09.723: E/AndroidRuntime(12530):    at java.lang.reflect.Method.invokeNative(Native Method)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at java.lang.reflect.Method.invoke(Method.java:507)
07-01 12:31:09.723: E/AndroidRuntime(12530):    at android.view.View$1.onClick(View.java:2139)
4

1 に答える 1

0

あなたがここで何をしようとしているのか、私には完全には理解できません。

しかし、ロジックは私には少し奇妙に見えます。

poz = 0 の場合、次のケースは失敗しませんか?

cuvAfisat.substring(0, poz*2-1)

さらに、poz の値を確認できますか

poz*2+1超えませんcuvAfisat.length()

于 2012-07-01T17:26:00.720 に答える