java中通过接口实现自定义事件,动态设定行为
2017-01-14 11:09
453 查看
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]); } } }); } }
相关文章推荐
- 利用自定义ClassLoader和接口逻辑后台可刷新缓存实现java-web项目的动态发布
- 通过自定义的类来实现事件监听器接口的示例
- comparable接口VScomparator接口及java中自定义对象运算符的实现
- 通过自定义类加载器进行动态编译与动态实现接口
- Java通过接口实现匿名类的实例
- 通过DIV+CSS实现 一块没有连接的区域实现鼠标事件的动态效果
- JAVA中几个易混淆关键词的理解:行为,隐藏,组合和继承,覆写和重载,多形(多态)性,动态绑定,上溯造型,抽象类,接口
- 组合查询(通过Criteria接口实现动态构造查询条件)
- java中的通过继承Thread和实现Runnable接口实现的线程
- Java深拷贝除了通过实现Cloneable接口,另外还可以通过序列化实现对象的拷贝。
- JAVA中通过实现Runnable接口来创建线程类
- java 中关于抽象类和接口的范例,通过多态中的向上转移实现
- JAVA动态模块的设计实现以及如何通过newInstance()来创建带参的构造类实例
- 通过使用java.lang.reflect.Proxy实现动态代理
- Java【多线程知识总结(4)】通过实现Runnable接口创建线程
- 自定义CursorAdapter,实现ListView中动态加载button,和点击事件
- VC 通过IHTMLINTEFACE 接口实现网页执行自定义js代码
- java动态代理2 (cglib 不用实现接口)
- Java自定义实现Comparable接口的类,实现多维排序
- 联通SGIP1.2短信接口 Java版实现 总结 2013-10-23测试通过