当我们自定义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. 【笔记】Fragment使用

    1.静态加载 1.1 首先定义每一个Fragment的布局文件. 1.2 创建每个fragment类,需要继承Fragment.并使用onCreateView()的inflater.inflate() ...

  2. docker之文件夹共享

    本文采用的是CoreOS操作系统 1.共享宿主机的目录给容器 docker run -d --name=test -v /opt/test:/usr/databases docker-test tes ...

  3. okHttp使用

    本文转载自:http://www.cnblogs.com/qifengshi/p/5405550.html okHttp是一个http请求框架,相当于android原生的httpclient和http ...

  4. Maven 标签详解

    <span style="padding:0px; margin:0px"><project xmlns="http://maven.apache.or ...

  5. SQLServer数据库转换成MySQL数据库

    由于工作需要,系统原先的SQLServer数据库要转换成MYSQL数据库,所以这两天就一直在查阅这方面的资料.最开始,我尝试从SQLServer中导出SQL文件,然后导入到MYSQL数据库中,发现报错 ...

  6. Python学习感悟

    学习任何新知识,我自己偏向于在实践中学习,这样效率更高:如果只是学习基本概念,会很枯燥. 现在的问题是:不是所有的新知识都可以在实践中学习!

  7. SQL取出 所有周六 周日的日期

    SQL取出 所有周六 周日的日期 create table SatSun([id] int identity(1,1),[date] datetime,[weekday] char(6)) go de ...

  8. Unity3d游戏场景优化杂谈(3)

    LOD(Level-of-detail)是最常用的游戏优化技术 .如果你的程序可以定制开发应用LOD的模块,当然 是很美好的事情.不过如果没有也没关系,大家可以使用UniLOD这个第三方的LOD插件. ...

  9. 修改VS 所有项目的Include目录和Lib目录

    像以前的方法 在 工具--选项--项目和解决方案里的修改已经被弃用.

  10. setTimeout的应用

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...