需要通过 OnCheckChangedListener 访问扩展 ToggleButton class 的属性

Need to access properties of extended ToggleButton class through OnCheckChangedListener

我正在尝试在一个名为 TagToggleButton 的新 class 中扩展 ToggleButton class,其唯一区别在于它有一个我可以使用的 ID与之相关联的集合。 TagToggleButton class 看起来如下:

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 class?

非常感谢!

onCheckedChanged 方法中将 CompoundButton buttonView 转换为 TagToggleButton。要获取标签 ID,您可以执行类似 long id = ((TagToggleButton) buttonView).getTagId();

的操作