0

いくつかTextViewのsとEditTexts、およびsDatePickerとsを表示するアクティビティがありますTimePicker。今、私はを追加していますSpinner、そしてそれは私のコードがそれにあるのと同じように、ほとんど底に近いonCreate()です。スピナーをクリックすると、ポップアップが開きます。おそらく下部に近いため、十分なスペースがありません。だから、一番上にあるときに試してみようと思いました。しかし、それは失敗しました。エラーは次のとおりです。

06-20 15:31:28.802: E/AndroidRuntime(980): java.lang.RuntimeException: 
Unable to start activity ComponentInfo{com.zeroe/com.zeroe.AddEventActivity}: 
java.lang.ClassCastException: android.widget.Spinner cannot be cast to
android.widget.Button

私はそれを理解していませんが、私が推測していることから、XMLの配置はコードの配置に従う必要があります。私は文字通りxmlコードをコピーして先頭に貼り付けているので、何も変更していないことがわかります。それで、これはルールですか、それとも私はある種の間違いを犯していますか?よろしくお願いします。

編集:

私のコードSpinner spinner = (Spinner)findViewById(R.id.reminder_spinner);

4

3 に答える 3

1

レイアウトを変更すると、 Eclipseがリソースを再構築せず、XMLで宣言されたビューと一致しないIDが残る場合があることに注意してください。完全にクリーンアップして再構築する必要があります。

于 2012-06-20T19:45:48.337 に答える
0

問題は、をキャストしようとしていることSpinnerですButton

次のようなコードがあると思います。

Button myButton = findViewById(R.id.mySpinnerID)

代わりに、次の2行のいずれかのようになります。

Spinner mySpinner = findViewById(R.id.mySpinnerID)
Button myButton = findViewById(R.id.myButtonID)

.xmlのビューに対応するJavaオブジェクトを作成するときは、対応するビューに適切なオブジェクトタイプを作成していることを確認する必要があります。

于 2012-06-20T19:40:25.537 に答える
0

エラーはほとんど自明です。SpinnerオブジェクトをオブジェクトにキャストしようとしていButtonます。確認のために、XML内のビューの位置とそのXMLにアクセスするコードとの間に関係はありません。

于 2012-06-20T19:41:25.507 に答える