Я пытаюсь расширить класс ToggleButton
в новом классе с именем TagToggleButton
, единственным отличием которого является тот факт, что он имеет идентификатор, который я могу установить связанным с ним. TagToggleButton
класс выглядит следующим образом:Нужно получить доступ к свойствам расширенного класса ToggleButton через OnCheckChangedListener
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, который позволит мне получить идентификатор свойства кнопки. Например:
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
методе?
Большое спасибо!
вы пробовали литья '' CompoundButton' buttonView' в 'TagToggleButton' внутри' onCheckedChanged' метода? –
@ rere252 нет, я не так, не понял, что действительно было. Я могу сделать это прямо внутри onCh eckedChanged метод, который я описал? (так как мне больше не нужно редактировать класс TagToggleButton?) – cshadowstar
Я пробовал следующее: 'long id = (TagToggleButton) buttonView.getTagId();' и он по-прежнему появляется как неразрешенный метод в студии Android – cshadowstar