我想创建一个类,它可以扩展Button并实现一个方法,当单击Button时,该方法被称为alwasy。但我仍然希望它的OnClickListener被调用。 我的想法是在调用构造函数或setOnClickListener时将OnClickListener保存到私有成员中,然后将OnClickListener设置为我自己的OnClickListener。然后,这个将调用我的方法和保存的OnClickListener。 但我不知道如何获得OnClickListenr,我只看到,如何设置它。 有没有办法访问它? 或者你有更好的主意吗? (在OnClickListener之前或之后调用我的方法无关紧要)
答案 0 :(得分:0)
我想你可以这样做:
public class OnceClickedTwiceRunButton extends Button{
public OnceClickedTwiceRunButton(Context context) {
super(context);
}
public OnceClickedTwiceRunButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public OnceClickedTwiceRunButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
private OnClickListener extraClickMethod;
@Override
public void setOnClickListener(OnClickListener newListener)
{
super.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
DefaultClickMethod(v);
if(extraClickMethod != null)
{
extraClickMethod.onClick(v);
}
}
});
extraClickMethod = newListener;
}
private void DefaultClickMethod(View v)
{
//TODO
}
}