当我们自定义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){

}

});

Android 自定义事件监听器的更多相关文章

  1. cocos2d JS 自定义事件分发器(接收与传递数据) eventManager

    简而言之,它不是由系统自动触发,而是人为的干涉 较多情况用于传递数据 var _listener1 = cc.EventListener.create({ event: cc.EventListene ...

  2. Spring Boot(六)自定义事件及监听

    事件及监听并不是SpringBoot的新功能,Spring框架早已提供了完善的事件监听机制,在Spring框架中实现事件监听的流程如下: 自定义事件,继承org.springframework.con ...

  3. Android编程: 界面组成、事件监听器

    学习知识:界面组成.事件监听器 ====界面组成==== 1.用户界面的基本组件叫做View,都是继承android.view.View类,Android里面预定义很多基本的界面组件,比如 Butto ...

  4. Android事件监听器Event Listener

    在 Android 中,我们可以通过事件处理使UI与用户互动(UI Events). UI的用户事件处理,即View处理用户的操作,在应用程序中几乎不可避免.View是重要的类,它是与用户互动的前线: ...

  5. [置顶] xamarin android自定义标题栏(自定义属性、回调事件)

    自定义控件的基本要求 这篇文章就当是自定义控件入门,看了几篇android关于自定义控件的文章,了解了一下,android自定义控件主要有3种方式: 自绘控件:继承View类,所展示的内容在OnDra ...

  6. Android进程间通信之内部类作为事件监听器

    在Android中,使用内部类能够在当前类里面发用改监听器类,由于监听器类是外部类的内部类.所以能够自由訪问外部类的全部界面组件. 下面是一个调用系统内部类实现短信发送的一个样例: SMS类: pac ...

  7. Android 自定义View——自定义点击事件

    每个人手机上都有通讯录,这是毫无疑问的,我们通讯录上有一个控件,在通讯录的最左边有一列从”#”到”Z”的字母,我们通过滑动或点击指定的字母来确定联系人的位置,进而找到联系人.我们这一节就通过开发这个控 ...

  8. 【朝花夕拾】Android自定义View篇之(六)Android事件分发机制(中)从源码分析事件分发逻辑及经常遇到的一些“诡异”现象

    前言 转载请注明,转自[https://www.cnblogs.com/andy-songwei/p/11039252.html]谢谢! 在上一篇文章[[朝花夕拾]Android自定义View篇之(五 ...

  9. 【朝花夕拾】Android自定义View篇之(五)Android事件分发机制(上)Touch三个重要方法的处理逻辑

    前言 转载请注明,转自[https://www.cnblogs.com/andy-songwei/p/10998855.html]谢谢! 在自定义View中,经常需要处理Android事件分发的问题, ...

随机推荐

  1. java语法基础

    Java的基本符号(token) Java的单词符号有五种:关键字.标识符.常量.分隔符和操作符. Java的字符集 Java 采用一种称为unicode的字符集,该字符集合是一种新的编码标准,与常见 ...

  2. 我的OpenCV学习笔记:VideoCapture类

    opnCV  学习博客http://blog.csdn.net/thefutureisour/article/details/7472104 1 OpneCV中的数据共享机制 OpenCV是一个很不错 ...

  3. BZOJ 3339 && BZOJ 3585 莫队+权值分块

    显然若一个数大于n就不可能是答案. #include <iostream> #include <cstring> #include <cstdio> #includ ...

  4. UI控件

    1.布局:一个Activity相当于一个手机屏幕默认和手机屏幕的宽高相同LinearLayout.RelativeLayout等布局继承了ViewGroup,ViewGroup是View的子类,可以容 ...

  5. python自动化框架nose

    python除了unittest,还有一款更快捷的nose,nose可以说是对unittest的一种简化吧 但是他不需要unittest那种必须有固有的格式,他只需要文件,类名,方法名等含有test就 ...

  6. springmvc 自定义注解 以及自定义注解的解析

    1,自定义注解名字 @Target({ElementType.TYPE, ElementType.METHOD})   //类名或方法上@Retention(RetentionPolicy.RUNTI ...

  7. 浏览器功能记住账号和密码解决方法(HTML解决方式)

    1.在input标签里应用html5的新特性autocomplete="off"  注:对chrome不管用.其他浏览器没试. 2.如果是一个输入框那就在当前input标签后面(一 ...

  8. cocoapods版本更新

    1.下载某些三方库时,pod install会出现错误 $ pod install Analyzing dependencies [!] The version of CocoaPods used t ...

  9. 9本java程序员必读的书(附下载地址)

    本文列出的9本书在Java程序员界都是被认为很棒的书.当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java.这个问题也就表明,相对于其他的教程和博客,Java书籍还 ...

  10. Linux LVM硬盘管理及LVM扩容

    LVM磁盘管理 一.LVM简介... 1 二. LVM基本术语... 2 三. 安装LVM... 3 四. 创建和管理LVM... 4 2. 创建PV.. 6 3. 创建VG.. 7 4. 创建LV. ...