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

时间:2015-04-07 17:57:21

标签: java android onclicklistener android-togglebutton

我正在尝试在名为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类?

非常感谢!

1 个答案:

答案 0 :(得分:0)

onCheckedChanged方法中,CompoundButton buttonView投放到TagToggleButton。要获取标记ID,您可以执行long id = ((TagToggleButton) buttonView).getTagId();

之类的操作