我可能会误解类型转换,但这是我的问题。
我有一个带有 ToggleButton 的 Android 视图:
<LinearLayout
... >
<ToggleButton
android:id="@+id/btnRec"
android:layout_width="125dp"
android:layout_height="wrap_content"
android:textOff="Start TEST"
android:textOn="Stop TEST" />
...
</LinearLayout>
然后在我的活动中,我声明了一个 ToggleButton 变量:
private ToggleButton mRecordButton = null;
现在,我实现了一个 ToggleButton 的子类,称为 RecordButton:
class RecordButton extends ToggleButton {
OnCheckedChangeListener clicker = new OnCheckedChangeListener() {
...
};
public RecordButton(Context ctx) {
super(ctx);
setOnCheckedChangeListener(clicker);
}
}
最后onCreate
我通过它的 id 找到按钮:
mRecordButton = (RecordButton) findViewById(R.id.btnRec);
这会抛出一个ClassCastException
.
为什么?如何将它RecordButton
从ToggleButton
(超类)转换为(子类)?