java - OnClickListener doesn't work implicitly. Why? -
i created custom button class implements listener interface:
public class blinkbutton extends button implements view.onclicklistener { list<onclicklistener> onclicklistenerlist = new arraylist<onclicklistener>(); public blinkbutton(context context) { super(context); this.setlistener(new highlightbuttonlistener()); } //other constructors here public void setlistener(onclicklistener listener){ onclicklistenerlist.add(listener); } @override public void onclick(view v) { for(onclicklistener listener : onclicklistenerlist){ listener.onclick(this); } } and have view:
<com.example.element.blinkbutton .../> i claim onclick method inside com.example.element.blinkbutton should call implicitly when user clicks blinkbutton, it's not. have write explicitly: android:onclick="fireevent" ,
public void fireevent(view view) { fireeventbutton.onclick(view); } why blinkbutton.onclick(); doesn't trigger automatically once user clicks button?
button (or superclasses) don't have onclick() method itself. 1 implement comes view.onclicklistener interface button class implements.
you never set class' onclicklistener, , code seems want onclicklistener class itself, custom listeners called.
add line constructor:
setonclicklistener(this); so looks this:
public blinkbutton(context context) { super(context); setonclicklistener(this); this.setlistener(new highlightbuttonlistener()); } you'll have remove onclick xml attribute.
Comments
Post a Comment