【问题标题】:android: calling a method each time a button is clickedandroid:每次单击按钮时调用一个方法
【发布时间】:2015-02-26 11:56:16
【问题描述】:

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

【问题讨论】:

  • 见下面的例子Button
  • 那又怎样?这仅显示如何设置 OnClickListener,而不是如何获取它...

标签: android button


【解决方案1】:

我猜你可以这样做:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    相关资源
    最近更新 更多