Android中自定义一个事件监听器

Android技术知识点:如何改造过时的LikeButton组件 阅读详情
 
监听器就是子对象向父对象发送事件发送的通知 并且让父对象做出反应

自定义一个事件监听器主要有四个步骤
  1. 定义一个接口
       在子对象中定义接口(子对象可以是纯粹的Java object 或者Adapter  ,fragment,以及其他可以被父对象创建的 例如一个activity  )
public class MyCustomObject {
  // Step 1 - This interface defines the type of messages I want to communicate to my owner 
  public interface MyCustomObjectListener {
      // These methods are the different events and 
      // need to pass relevant arguments related to the event triggered
      public void onObjectReady(String title);
      // or when data has been loaded
      public void onDataLoaded(SomeData data);
  }}



2.创建一个listener变量以及一个setter方法以便可以调用
public class MyCustomObject {
    // ...

    // Step 2 - This variable represents the listener passed in by the owning object
    // The listener must implement the events interface and passes messages up to the parent.
    private MyCustomObjectListener listener;}
public class MyCustomObject {
    // Constructor where listener events are ignored
    public MyCustomObject() {
        // set null or default listener or accept as argument to constructor
        this.listener = null; 
    }
       
    // Assign the listener implementing events interface that will receive the events
    public void setCustomObjectListener(MyCustomObjectListener listener) {
        this.listener = listener;
    }}



3.Implements 接口
public class MyParentActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // ...
        // Create the custom object
        MyCustomObject object = new MyCustomObject();
        // Step 4 - Setup the listener for this object
        object.setCustomObjectListener(new MyCustomObjectListener() {
                @Override
                public void onObjectReady(String title) {
                    // Code to handle object ready
                }
               
                @Override
                public void onDataLoaded(SomeData data) {
                    // Code to handle data loaded from network
                    // Use the data here!
                }
        });
    }}



4事件触发

(例子中就是数据载入完成)

public class MyCustomObject {
   // Listener defined earlier
   public interface MyCustomObjectListener {
      public void onObjectReady(String title);
      public void onDataLoaded(SomeData data);
   }
   
   // Member variable was defined earlier
   private MyCustomObjectListener listener;

    // Constructor where listener events are ignored
    public MyCustomObject() {
        // set null or default listener or accept as argument to constructor
        this.listener = null; 
        loadDataAsync();
    }
 
    // ... setter defined here as shown earlier

    public void loadDataAsync() {
        AsyncHttpClient client = new AsyncHttpClient();
        client.get("https://mycustomapi.com/data/get.json", new JsonHttpResponseHandler() {         
            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                // Networking is finished loading data, data is processed
                SomeData data = SomeData.processData(response.get("data"));
                // Do some other stuff as needed....
                // Now let's trigger the event
                if (listener != null)
                  listener.onDataLoaded(data); // <---- fire listener here
            }
        });
    }}          


Android自定义日历控件:日程管理与UI设计 在Android开发中,自定义控件是一个进阶话题,它允许开发者创造具有个性化功能和界面的组件,从而提升应用程序的用户体验。在本章中,我们将探讨如何实现一个自定义的日历控件,从基础概念开始,分析需求,设计架构,构建界面,再到最后的功能扩展。在Android开发中,自定义控件可以是一个View,也可以是一个ViewGroup。自定义View的基本工作流程包括重写onDraw方法来绘制控件,以及处理触摸事件等。自定义ViewGroup则可能需要管理其子视图的布局和事件分发。 阅读详情

相关推荐

Android中自定义ScrollView的滑动监听事件

最近写项目,需要有个功能使用到监听ScrollView的滑动事件,我自己没有定义出来,我在网上找了一个例子,然后自己做了修改,上传到这,希望能和大家交流学习

Android增加自定义监听事件

1,在需要传出事件的类中创建接口 public static interface ConvertViewOnClickListener { public void onClickListenerConvertView(int position); } private SpecialAdapter.ConvertViewOnClickListener convertViewOnCli

zlhuan 2843

从服装打版到激光切割:二维异形件排版算法在实际生产中的避坑指南

本文深入探讨二维异形件排版算法在服装、家具等行业的实际应用,对比NFP和重叠移除两种核心策略的优缺点,并提供算法落地的五大实战陷阱与解决方案。通过案例分析和技术要点解析,帮助生产管理者提升材料利用率5%-15%,优化生产效率。

weixin_28717431的博客 416

android如何自定义监听事件,Android设置监听事件

技术需求背景APP应用开发离不开多页面之间的信息交互,比如说在现在被大量使用的Fragment,一个应用可能会有多个Acitivity,一个Activity下会有多个Fragment。那么如何在这多个Activity or fragment下来进行信息交互呢。再具体下比如如下gif场景demo.gif左边是一级菜单,右边上面是二级菜单,然后筛选出商品内容。结构是,外面一个大的FragmentA,在...

weixin_42133753的博客 691

Android开发者必看:5分钟搞定MQTT客户端连接EMQX服务器(附完整代码)

本文为Android开发者提供了一份快速实现MQTT客户端连接EMQX服务器的实战指南。通过引入Eclipse Paho SDK,详细讲解了从项目配置、权限申请到核心连接、主题订阅与消息发布的完整流程,并附有即拿即用的Kotlin代码,帮助开发者在物联网应用中高效集成轻量级实时通信功能。

weixin_29228781的博客 271

从查表法到实时计算:SimpleFOC库中正弦函数优化的技术演进

本文深入探讨了SimpleFOC库v2.0.1版本中正弦函数优化技术的演进,从传统查表法到实时计算的创新实践。通过定点数优化、对称性利用和分段线性插值等关键技术,实现了在嵌入式电机控制中的高效三角函数计算,显著提升性能和资源利用率。

weixin_28273593的博客 452

android自定义监听器

当我们自定义View的时候,如果需要返回值,那么就需要自定义一个监听器。 这里用一个自定义的数字选框为例。 首先定义view。 1、新建view,NumberKeyboardView.java,自定义view一定要有一个带属性参数的构造函数,这样才可以在xml中使用该View。 public class NumberKeyboardViewextends View{   public N

History became legend, legend became myth 9286

7.91版本unidbg调用方式

【代码】xhs最新7.91版本unidbg调用方式。

Codeooo 博客 1107

Andriod -自定义监听器

2.创建一个类,类中定义三个方法,第一个方法打开监听器,第二个方法删除监听器,第三个方法修改监听的数据。1.创建一个接口,接口中定义一个方法,方法带上需要监听的参数。实例代码如下,可直接复制粘贴使用。

2301_77563065的博客 617

第67步 时间序列建模实战:ARIMA建模(Stata)

第67步 时间序列建模实战:ARIMA建模(Stata)

Jet4505的博客 6820

39、FIPA ACL:多代理系统中的标准化通信

本文详细介绍了FIPA ACL(Agent Communication Language)的基本概念、言语行为理论基础以及其在多代理系统(MAS)中的应用。文章涵盖了FIPA ACL的消息格式、信息交流流程、实现与优化方法,并通过智能调度系统的实例展示了其实际应用效果。此外,还探讨了FIPA ACL面临的挑战及未来发展方向,如通信延迟优化、本体简化、安全性增强等。

k8s6orchestrator的博客 381

android 个推点击事件,自定义事件

自定义事件1. 功能介绍自定义事件可以统计某些用户自定义埋点的发生时间以及次数,例如广告点击、短信数量等。通常 event_id 用于表示某种行为或功能的统计(如统计“发送”按钮被触发多少次),而参数则用于标识统计的具体对象(如功能为“下载”的按钮),由 event_id 唯一标识一个事件。自定义事件主要分为三种:(1)次数统计:统计指定行为被触发的次数。(2)时长统计:统计指定行为消耗的时间,单...

weixin_40001519的博客 631

【华为OD机试真题】45、 分糖果 | 机试真题+思路参考+代码解析(C++、Java、Py、JS)

### 🎃题目描述 >小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。 >  当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。 >  小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗。

正在更新最新华为OD机试2025B卷,提供OJ在线刷题 1290

浅谈android中的自定义封装易用的Dialog

好久没写android的博客,最近在做一个android的项目,里面用到我们经常用的一个控件就是对话框,大家都知道android自带的对话框是很丑的,android5.x之后除外.所以就出现了自定义view,自己定义美观的对话框.好我们就来自定义对话框. 整体思路:定义一个类然后去继承Dialog类,然后重写相应的构造器方法.大家都知道一般的对话框的创建过程都是来一个AlertDialog.Bu

Mikyou的专栏 4万+

3D 结构光相机工作原理全解 | 从编码投射到三维重建,原理 + 代码 + 工业实战一站式掌握

本文从3D结构光相机的整体架构出发,层层拆解了编码投射、相位计算、相位解包裹、三维重建的核心原理,补充了工业实战所需的公式推导、代码实现、参数调优、设备选型和案例落地,核心总结如下:相位是3D结构光成像的“灵魂”,其精度、稳定性直接决定3D重建的效果,包裹相位与绝对相位的区分的是工业实战的基础;编码投射的核心是“正弦条纹+格雷码条纹”组合,正弦条纹负责高精度相位提取,格雷码条纹辅助解包裹,适配工业场景的精度与稳定性需求;

getusushu的博客 414

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Android 常见对话框的简单使用(提示信息对话框、单选多选对话框、自定义对话框)

自定义对话框布局:

2401_84132401的博客 824

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

安卓开发学习之020 自定义视图的用户交互事件

要使自定义的视图是可交互的,就需要使它能够对用户事件作出反应,例如,按下按键、触摸屏幕或者单击按钮等。Android提供了多个虚拟事件处理程序,可以对用户输入作出反应,如下所示: onKeyDown 当任何设备按键被按下时,就会调用它;包括D-pad、键盘、挂断、通话、返回和摄像头按键 onKeyUp 当用户释放一个按键时调用 onTouchEvent 当触摸屏被按下或者释放时调

Yu的专栏 2048

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

90、 Android UI模板设计

第一步:自定义xml属性 新建一个android项目,在values文件夹中新建一个atts.xml的文件,在这个xml文件中声明我们一会在使用自定义控件时候需要指明的属性。atts.xml <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable na...

dianwei5413的博客 96

自定义ListView【通用】适配器并实现监听控件! .

ListView :在Android应用开发过程中属于最常用的系统组件之一,当然可能童鞋们问为什么会突然游戏开发中讲这个,呵呵,其实在游戏开发中,也会常常使用到系统组件,比如游戏排行榜,简单的游戏关卡选择等等,都可以来使用ListView来实现;     当然关于ListView我想大家都会使用了,那么这篇文章也不是跟大家讲解ListView是如果使用的,而是如何实现自定义一个【通用】适配器类;...

人生就是一种修行 146

STC89C516RD+烧录避坑指南:PL2303驱动与冷启动详解

串口通信是单片机开发的基础,ISP下载则依赖芯片内置的引导程序实现程序烧写。STC89C516RD+通过UART接口配合USB转串口模块,即可完成HEX文件的写入。整个过程涉及硬件接线、驱动配置、软件时序等多个环节,其中冷启动顺序和驱动兼容性是最常见的失败点。Prolific PL2303芯片在Win10/Win11下因新驱动封锁老型号,常出现“This is not a Prolific PL2303”报错,可通过安装旧版驱动或更换CH340模块解决。掌握串口TX/RX交叉、GND共地、先点下载再上电等核

weixin_34320724的博客 345

【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!

Himi原创,转载务必注明出处! 原文地址:http://blog.youkuaiyun.com/xiaominghimi/archive/2011/04/11/6314704.aspx ListView :在Android应用开发过程中属于最常用的系统组件之一,当然可能童鞋们问为什么会突然游戏开发中讲这个,呵呵,其实在游戏开发中,也会常常使用到系统组件,比如游戏排行榜,简...

weixin_30608131的博客 62

Android开发之旅一 长按Button原理

<br />今天Android123开始新的Android游戏开发之旅系列,主要从控制方法(按键、轨迹球、触屏、重力感应、摄像头、话筒气流、光线亮度)、图形View(高效绘图技术如双缓冲)、音效(游戏音乐)以及最后的OpenGL ES(Java层)和NDK的OpenGL和J2ME游戏移植到Android方法,当然还有一些游戏实现惯用方法,比如地图编辑器,在Android OpenGL如何使用MD2文件,个部分讲述下Android游戏开发的过程最终实现一个比较完整的游戏引擎。相信大家都清楚Android Ma

android 4885

Android线性指南针开源库介绍

Android线性指南针开源库介绍 项目基础介绍 该项目是一个开源的Android线性指南针库,由RedInput开发并维护,主要使用Java编程语言实现。该库旨在为开发者提供一种易于集成和使用的方式来在Android应用中添加指南针功能。 核心功能 自定义视图:提供完全可定制的线性指南针视图,可以根据需要调整背景色、标记颜色、线条颜色、文字颜色和大小等属性。 角度显示:当配置的角度范围大于50...

gitblog_00931的博客 412

android 多行排列,Android 可以多行多列的单选列表——MultiLineRadioGroup

项目需要用到一个多行多列的单选列表,用RadioGroup组合或者Recyclerview、GridLayout单独实现的话很是麻烦,所以就自己根据RadioGroup和GridLayout的特性搬了一个。。。怎么说是搬呢?其实MultiLineRadioGroup继承于GridLayout,但是里面实现的代码都是照搬RadioGroup的。先来张效果图:111.gif使用示例:xmlns:app...

weixin_32184991的博客 572

自定义ListView【通用】适配器并实现监听控件!

ListView :在Android应用开发过程中属于最常用的系统组件之一,当然可能童鞋们问为什么会突然游戏开发中讲这个,呵呵,其实在游戏开发中,也会常常使用到系统组件,比如游戏排行榜,简单的游戏关卡选择等等,都可以来使用ListView来实现;     当然关于ListView我想大家都会使用了,那么这篇文章也不是跟大家讲解ListView是如果使用的,而是如何实现自定义一个【通用】适配器

宝爷的专栏 946

Android下拉刷新的实现

ListView下拉刷新实现方式分析 1.添加顶部下拉加载界面。 2.监听onScrollListener,来判断当前是否在ListView最顶部。 3.监听onTouch事件,根据手势变化改变当前状态以及界面显示。 4.根据当前状态加载数据。

李旭的专栏 539
上一篇: android(android studio)中使用注解框架butterknife
下一篇: React Native 开发(第一篇)
CallMeJason
博客等级 码龄12年 5粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值