需要通过 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();
的操作
我正在尝试在一个名为 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();