1

私は単純なフォームを作成しており、strings.xml に格納されている配列を使用して、ユーザーが入力したテキストと比較したいと考えています。

    Resources res = getResources();
    String[] usernameArray = res.getStringArray(R.array.usernames);
    int userint = usernameArray.length;
    for(int x=0;x<userint;x++){
        if(user.equals(usernameArray[x])){
            Toast.makeText(this, "Username already exists.", Toast.LENGTH_SHORT).show();
            return;
        }
    }

-strings.xml から

<string-array name="usernames">
    <item>Bryan</item>
    <item>John</item>
    <item>Matt</item>
    <item>Mike</item>
</string-array>

アプリでコードのこの部分を実行すると、logcat で多くのエラーが発生します。

09-11 00:25:59.725: E/AndroidRuntime(810): FATAL EXCEPTION: main
09-11 00:25:59.725: E/AndroidRuntime(810): java.lang.IllegalStateException: Could not execute method of the activity
09-11 00:25:59.725: E/AndroidRuntime(810):  at android.view.View$1.onClick(View.java:3633)
09-11 00:25:59.725: E/AndroidRuntime(810):  at android.view.View.performClick(View.java:4240)
09-11 00:25:59.725: E/AndroidRuntime(810):  at android.view.View$PerformClick.run(View.java:17721)
09-11 00:25:59.725: E/AndroidRuntime(810):  at android.os.Handler.handleCallback(Handler.java:730)
09-11 00:25:59.725: E/AndroidRuntime(810):  at android.os.Handler.dispatchMessage(Handler.java:92)
09-11 00:25:59.725: E/AndroidRuntime(810):  at android.os.Looper.loop(Looper.java:137)
09-11 00:25:59.725: E/AndroidRuntime(810):  at android.app.ActivityThread.main(ActivityThread.java:5103)
09-11 00:25:59.725: E/AndroidRuntime(810):  at java.lang.reflect.Method.invokeNative(Native Method)
09-11 00:25:59.725: E/AndroidRuntime(810):  at java.lang.reflect.Method.invoke(Method.java:525)
09-11 00:25:59.725: E/AndroidRuntime(810):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-11 00:25:59.725: E/AndroidRuntime(810):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-11 00:25:59.725: E/AndroidRuntime(810):  at dalvik.system.NativeStart.main(Native Method)
09-11 00:25:59.725: E/AndroidRuntime(810): Caused by: java.lang.reflect.InvocationTargetException
09-11 00:25:59.725: E/AndroidRuntime(810):  at java.lang.reflect.Method.invokeNative(Native Method)
09-11 00:25:59.725: E/AndroidRuntime(810):  at java.lang.reflect.Method.invoke(Method.java:525)
09-11 00:25:59.725: E/AndroidRuntime(810):  at android.view.View$1.onClick(View.java:3628)
09-11 00:25:59.725: E/AndroidRuntime(810):  ... 11 more
09-11 00:25:59.725: E/AndroidRuntime(810): Caused by: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.RadioButton
09-11 00:25:59.725: E/AndroidRuntime(810):  at com.example.myapplication.MainActivity.hitClear(MainActivity.java:81)
09-11 00:25:59.725: E/AndroidRuntime(810):  ... 14 more

また、別の質問をしたときに、LogCat がエラーが発生した行を示した場所に投稿するように求められましたが、私のエラーは発生しませんでした。それを有効にする方法はありますか?

ありがとう。

4

3 に答える 3

1
09-11 00:25:59.725: E/AndroidRuntime(810): Caused by: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.RadioButton
09-11 00:25:59.725: E/AndroidRuntime(810):  at com.example.myapplication.MainActivity.hitClear(MainActivity.java:81)

MainActivity.java の 81 行目を確認してください。

RadioButton button = (RadioButton) findById( R.id... );

R.id...Buttonではなくを指しRadioButtonます。

于 2013-09-11T04:42:30.200 に答える
1

これはあなたの本当の問題です:

android.widget.Button は android.widget.RadioButton にキャストできません

于 2013-09-11T04:39:55.263 に答える
1
Caused by: java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.RadioButton

こちらをご覧ください。エラーは String リソースからではありません。あなたのxmlをチェックしてください。に変換しようとしButtonていRadioButtonます。修正してください。

于 2013-09-11T04:40:02.607 に答える