博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Android 自定义事件监听器

Posted on 2016-11-20 13:39  Sir814  阅读(598)  评论(0)    收藏  举报

当我们自定义View的时候,如果需要返回值,那么就需要自定义一个监听器。

这里用一个自定义的数字选框为例。

首先定义view。

1、新建view,NumberKeyboardView.Java,自定义view一定要有一个带属性参数的构造函数,这样才可以在xml中使用该View。

public class NumberKeyboardViewextends View{

  public NumberKeyboardView(Context context, AttributeSet attrs) {

    super(context, attrs);

  }

}

2、新建interface,OnNumberKeyboard.java,并定义一个接口函数。

public interface OnNumberKeyboard {

  public void OnSetNumber(int number);

}

3、在NumberKeyboardView中给接口加上set和get函数,先定义接口参数。

OnNumberKeyboard onNumberKeyboard = null;

CLT+S,选择Generate Getters and Setters菜单,把onNumberKeyboard项勾选,也可以展开只选set或get,点击ok,在View中自动生成代码。

 public void setonNumberKeyboard(OnNumberKeyboard onNumberKeyboard) {

  this.mOnNumberKeyboard = onNumberKeyboard;

 }

4、在View中调用该接口函数,当点击到view时调用。(这个完全看你自己想监听什么)

public boolean onTouchEvent(MotionEvent event) {

  if(event.getAction() == MotionEvent.ACTION_DOWN){

   onNumberKeyboard.OnSetNumber(100);

  }

  return super.onTouchEvent(event);

 }

5、在Activity中调用set函数对该view的该事件进行监听。

NumberKeyboardView mNumberKeyboardView = ...;

mNumberKeyboardView.setonNumberKeyboard(new OnNumberKeyboard(){

 public void OnSetNumber(int number){

 }

});