1

クラスJavaを使用して、円の画像ボタンをカスタマイズします。今私はそれをImageButtonに変換したい。しかし、ClassCastException というエラーが表示されます。私は助けが必要です !覚悟があればお願いします。ありがとう。

私が使う

rootView.findViewById(R.id.btnPlay).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });

仕事 !しかし、私はImageButtonしたいです。

Java コード :

ImageButton btnPlay = (ImageButton) rootView.findViewById(R.id.btnPlay);
        btnPlay.setImageResource(R.drawable.ic_pause1);

コード XML :

<android.tadev.blogradio.support.CircleButton
            android:id="@+id/btnPlay"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:contentDescription="@string/clear"
            android:src="@drawable/ic_play1" />

ログキャット

02-10 12:19:33.798: E/AndroidRuntime(1377): FATAL EXCEPTION: main
02-10 12:19:33.798: E/AndroidRuntime(1377): java.lang.ClassCastException: android.tadev.blogradio.support.CircleButton cannot be cast to android.widget.ImageButton
02-10 12:19:33.798: E/AndroidRuntime(1377):     at android.tadev.blogradio.main.PlayBlog.onCreateView(PlayBlog.java:91)
02-10 12:19:33.798: E/AndroidRuntime(1377):     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
02-10 12:19:33.798: E/AndroidRuntime(1377):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
02-10 12:19:33.798: E/AndroidRuntime(1377):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
02-10 12:19:33.798: E/AndroidRuntime(1377):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
02-10 12:19:33.798: E/AndroidRuntime(1377):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
4

2 に答える 2

1

オブジェクトを としてキャストしないImageButtonで、代わりに を使用してCircleButtonください。

CircleButton カスタム ビューが ImageButton を拡張する限り、ImageButton のすべての機能が存在します。

以下を使用します。

CircleButton btnPlay = (CircleButton) rootView.findViewById(R.id.btnPlay);
btnPlay.setImageResource(R.drawable.ic_pause1);
于 2015-02-10T12:35:50.333 に答える
0

それが失敗する唯一の理由は、CircleButton が ImageButton を拡張していないことです。そうしないと、このエラーは発生しません。拡張する ImageButton とキャスト先の正確なパッケージ名を再確認してください。あなたは何かが欠けています。

于 2015-02-10T12:42:33.720 に答える