型キャストを誤解しているかもしれませんが、ここに私の問題があります。
ToggleButton を備えた Android View があります。
<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;
ここで、RecordButton という ToggleButton のサブクラスを実装します。
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
ですか?