android:每次单击一个按钮时调用一个方法

时间:2015-02-26 11:56:17

标签: android button

我想创建一个类,它可以扩展Button并实现一个方法,当单击Button时,该方法被称为alwasy。但我仍然希望它的OnClickListener被调用。 我的想法是在调用构造函数或setOnClickListener时将OnClickListener保存到私有成员中,然后将OnClickListener设置为我自己的OnClickListener。然后,这个将调用我的方法和保存的OnClickListener。 但我不知道如何获得OnClickListenr,我只看到,如何设置它。 有没有办法访问它? 或者你有更好的主意吗? (在OnClickListener之前或之后调用我的方法无关紧要)

1 个答案:

答案 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
}
}