0
我試圖擴展名爲TagToggleButton
的新類中的ToggleButton
類,它的唯一區別是它具有可以與其關聯的ID。該TagToggleButton
類看起來如下:需要通過OnCheckChangedListener訪問擴展的ToggleButton類的屬性
public class TagToggleButton extends ToggleButton {
private long tagId;
public TagToggleButton(Context context) {
super(context);
}
public TagToggleButton(Context context, long id) {
super(context);
this.setTagId(id);
}
public void setTagId(long id) {
this.tagId = id;
}
public long getTagId() {
return this.tagId;
}
}
然後我想打電話給一個OnClickListener,讓我獲得了按鈕的ID屬性。例如:
tag.setOnCheckedChangeListener(new TagToggleButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
long id = buttonView.getTagId();
// will do something with id afterwards
} else {
//Will do something else if the button isn't checked
}
}
但是,我不能叫上buttonView
getTagId
,因爲它被定義爲CompoundButton
。我怎樣才能改變buttonView
到TagToggleButton
類型(即我怎麼重寫我的TagToggleButton
方法中的OnCheckedChangeListener
類?
非常感謝!
你有沒有嘗試將'CompoundTutgle'' buttonView'投射到'onCheckedChanged'方法內的'TagToggleButton'? –
@rere252否我沒有,沒有意識到這是有效的。我可以直接在onCh上做到這一點我描述的eckedChanged方法? (因爲我不需要進一步編輯TagToggleButton類) – cshadowstar
我試過以下內容:'long id =(TagToggleButton)buttonView.getTagId();'它仍然是Android studio中未解決的方法 – cshadowstar