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
どうもありがとう!