java中通过接口实现自定义事件,动态设定行为

java中通过接口实现自定义事件,动态设定行为

有时候需要定义事件,自定义行为,或者动态设定行为,根据需要设置不同的行为,java中通过接口自定义事件,相当于C++中回调函数:

核心代码

假设类PhasePicker中showSelectedResult方法要设置动态行为,可以通过调用接口实现,代码如下:

public class PhasePicker{

    //定义接口对象
    OnSelectListener selListener;   

    //设置接口(回头调用该接口中函数)
    public void setSelListener(OnSelectListener selListener) {
        this.selListener = selListener;
    }



    private void showSelectedResult() {
        //回调,动态行为,不同的实例行为不同
        selListener.onSelect();

    }



    public interface OnSelectListener {  //内部类的形式定义接口
        void onSelect();  
    }  
} 

在实现时,产生PhasePicker 对象后,可以设置不同的行为


public class TrafficCtrlActivity extends Activity {
    //该方法中定义PhasePicker 局部对象,并动态设定行为
    private void showMoreCtrlCommand(){ 
        //定义一个PhasePicker对象
        final PhasePicker phasePicker = new PhasePicker();
        //为其设置接口(实现接口即回调函数)
        phasePicker.setSelListener(new OnSelectListener(){

            @Override
            public void onSelect() { // 实现内容即回调函数
                // TODO 自动生成的方法存根
                int sel = phasePicker.getCurrentItem();

                if (sel < CommonData.SPECIAL_PHASE_COMMAND.length){
                    setManulCtrl(CommonData.SPECIAL_PHASE_COMMAND[sel][1]);
                }
            }

        });

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值