2011-12-16 11 views
1

私はAndroid開発の新機能ですから、これは「noobish」の質問がある場合は事前にお伝えします。「ToggleButtonにTextViewをキャストできませんが、ToggleButtonです」

<ToggleButton 
    android:id="@+id/reminderToggle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/reminderDesc" 
    android:layout_alignBottom="@+id/reminderDesc" 
    android:layout_toRightOf="@+id/imageView1" 
    android:text="ToggleButton" /> 

私が使用しています:後で、その後

ToggleButton reminderToggle = (ToggleButton)findViewById(R.id.reminderToggle); 

if(reminderToggle.isChecked()) { 

ボタンonClick内部RelativeLayoutを使用して

、私は reminderToggleのIDでトグルボタンを持っていますリスナー、 onCreateの中で、 ggleButtonがチェックされます。これはすべて正常に動作していた。私は何をしたのか分かりませんが、ボタンをクリックするとアプリケーションがクラッシュします。 LogCat`では、私は

FATAL EXCEPTION: main 
java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.ToggleButton 
at nz.co.kwiius.park.ParkActivity$4.onClick(ParkActivity.java:139) 

ライン139は見ることができます:

ToggleButton reminderToggle = (ToggleButton)findViewById(R.id.reminderToggle); 

あなたがXMLで見ることができるように、reminderToggleはトグルボタンです。だからこそ、この大騒ぎは何ですか? :)事前に

おかげで、 JJ56

PS:このトグルボタン

+0

郵便活動のコードを使用してトグルボタン得ることができない、これは私たちが問題のみのonCreate(のルートを理解するのに役立ちます)でなければなりません良い。あなたが試みることができるもう一つのことは、あなたのプロジェクトをきれいにすることです、それはまだ古いコードを実行しているかもしれず、何とか矛盾しています。 – JoxTraex

+1

プロジェクトのクリーニングと再構築を試してください。 –

+0

ありがとう!それはうまくいった。あなたの誰かが答えとして清掃と再建を再投稿してください、それで私はそれを受け入れることができますか? :) – JJJollyjim

答えて

7

きれいですし、それに男を再構築reminderToggleのIDを持つ唯一の事があります。また、このような問題を避けるために常にビルドを自動的にチェックするようにしてください。あなたが前トグルボタンへのTextViewを定義しているとあなたがfindViewById()が戻りますので、クラスキャスト例外を取得ウィルトグルボタンTOUを取得しようとした場合の両方が、その場合には同じidその後、で定義されている場合

0

最初の要素はxmlの同じidを使用して定義されます。次のXMLでは、id reminderToggleで定義された最初の要素はTextViewです。ですから、そのID

ToggleButton reminderToggle = (ToggleButton)findViewById(R.id.reminderToggle);// will result you classcast exception for the following xml 

XML

<TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" 
     android:id="@+id/reminderToggle" />" 
    <ToggleButton 
    android:id="@+id/reminderToggle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:text="ToggleButton" /> 
関連する問題