我可能會誤解類型轉換,但這是我的問題。android - 將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>
然後在我的活動我宣佈一個切換按鈕變量:
private ToggleButton mRecordButton = null;
現在,我實現了切換按鈕的子類,稱爲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
。
爲什麼?我怎樣才能將它從ToggleButton
(超類)投射到RecordButton
(子類)?
爲什麼?因爲在XML中你聲明瞭一個ToggleButton,它不是一個RecordButton。嘗試聲明一個RecordButton。 – njzk2