我正在尝试在名为ToggleButton
的新类中扩展TagToggleButton
类,其唯一的区别在于它有一个我可以设置与之关联的ID。 TagToggleButton
类如下所示:
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;
}
}
然后我想调用一个允许我获取按钮的ID属性的OnClickListener。例如:
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
}
}
但是,我无法在getTagId
上致电buttonView
,因为它被定义为CompoundButton
。如何将buttonView
更改为TagToggleButton
的类型(也就是说,如何在OnCheckedChangeListener
方法中覆盖TagToggleButton
类?
非常感谢!
答案 0 :(得分:0)
在onCheckedChanged
方法中,CompoundButton
buttonView
投放到TagToggleButton
。要获取标记ID,您可以执行long id = ((TagToggleButton) buttonView).getTagId();