iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android 回调详解及简单实例
  • 732
分享到

Android 回调详解及简单实例

回调Android 2022-06-06 04:06:25 732人浏览 独家记忆
摘要

Android  回调 前言: Android中的回调最经典的就是点击事件设置监听(一般通过switch(v.getId()))这里写个最基本的 btn_riGI

Android  回调

前言:

Android中的回调最经典的就是点击事件设置监听(一般通过switch(v.getId()))这里写个最基本的


btn_riGISter.setOnClickListener(new View.OnClickListener() { 
  @Override 
  public void onClick(View view) { 
    // TODO log in 
  } 
}); 

view对外暴露了一个接口onClick


public interface OnClickListener { 
     
    void onClick(View v); 
  } 

我们在用的时候实现具体方法写了处理时,当前的Actvity是没有对这个方法做任何操作,这个被充实之后的onClick方法被view回调处理!其中一段处理 比如


public boolean callOnClick() { 
    ListenerInfo li = mListenerInfo; 
    if (li != null && li.mOnClickListener != null) { 
      li.mOnClickListener.onClick(this); 
      return true; 
    } 
    return false; 
  } 

具体可以阅读View.java

2、什么是回调

回调其实是一种双向调用模式,也就说调用方在接口被调用时也会调用对方的接口,听起来就很拗口,翻译翻译就是“实现了抽象类/接口 的实例实现了父类的提供的抽象方法,后,将该方法交还给父类来处理”,口诀念3遍,可以体会到其中的内涵了没?

主要要弄清楚一点,实现方法交还给提供接口的父类处理!

3、为什么要用回调

这里体现了Java面向对象的“万事万物皆为对象”,我们需要将普通物体的特性抽象出来,共性之中又有特性,每个不同的特性就需要交给特定的情况处理,通过暴露接口方法可以减少很多重复,代码更加优雅。
比如view具有被点击的通性,但是每个点击又会产生不一样的事件处理一样,因此android对外暴露一个接口有个onClick方法,你需要处理啥你就写啥,view只会调用这个方法,具体怎么处理你已经自己为不同的点击事件做了处理了。

4、如何写

一个很好的小栗子

【定义接口】 在类中定义一个Interface, 并在接口中定义一个抽象方法


public interface Callback{  
    public abstract void work();  
  }  

【接口对象】在类中定义一个该接口的成员变量


private Callback mCallback;  

 【设置对象】在类中定义一个公共方法,可以设置这个接口的对象,调用该方法给接口对象变量赋值


public void setCallback(Callback callback) {  
    this.mCallback = callback;  
  }  

【调用方法】调用接口对象中的方法


public void doWork() {  
    mCallback.work();  
  }  

ok,

完整代码如下


public class Employee {  
    
  private Callback mCallback;  
    
  public interface Callback{  
    public abstract void work();  
  }  
    
  public void setCallback(Callback callback) {  
    this.mCallback = callback;  
  }  
    
  public void doWork() {  
    mCallback.work();  
  }  
}  

然后我们针对去使用就好


public class Boss {  
  private Employee employee;  
    
  public void setCallback() {  
    employee.setCallback(new Employee.Callback() {  
      @Override  
      public void work() {  
        System.out.println("work");  
      }  
    });  
  }  
}  

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

您可能感兴趣的文章:Android中Fragment多层嵌套时onActivityResult无法正确回调问题的解决方法Android 的回调事件详解Android异步回调中的UI同步性问题分析Android的Fragment的生命周期各状态和回调函数使用深入浅析Android接口回调机制理解Android中Activity的方法回调android自定义控件和自定义回调函数步骤示例详细介绍Android中回调函数机制Android中回调接口的使用介绍基于Android中WEBview使用自定义的javascript进行回调的问题详解


--结束END--

本文标题: Android 回调详解及简单实例

本文链接: https://www.lsjlt.com/news/22630.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android中SharedPreference详解及简单实例
     Android中SharedPreference详解   SharedPreference是Android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,例如,默认欢迎语,登录用户名和密码等。...
    99+
    2023-05-30
    android sharedpreference roi
  • Android Build类的详解及简单实例
    Android Build类的详解及简单实例一、类结构:java.lang.Object? android.os.Build...
    99+
    2023-05-30
    android build类 roi
  • java 爬虫详解及简单实例
    Java爬虫一、代码爬虫的实质就是打开网页源代码进行匹配查找,然后获取查找到的结果。打开网页:URL url = new URL(http://www.cnblogs.com/Renyi-Fan/p/6896901.html);...
    99+
    2023-05-31
    java 爬虫 ava
  • Kotlin 泛型详解及简单实例
     Kotlin 泛型详解概述一般类和函数,只能使用具体的类型:要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的约束对代码的限制很大。而OOP的多态采用了一种泛化的机制,在SE 5种,Java引用了泛...
    99+
    2023-05-31
    kotlin 泛型
  • Android Kotlin的使用及简单实例
    Android Kotlin的使用及简单实例写在前面的话,作为一个不熬夜的人,一觉醒来发现Kotlin成为了Android的官方语言,可谓是大喜过望。为了趁热打铁,我决定提前三天放出原定本周日Release的文章。希望能及时让大家了解一下K...
    99+
    2023-05-31
    android kotlin roi
  • 简单实现Android端搜索框示例详解
    目录正文一、效果展示二、快速使用及属性介绍快速使用具体代码主要方法介绍1、搜索框监听2、搜索列表点击事件3、改变最近(历史)搜索item背景4、动态设置热门搜索热度属性介绍Searc...
    99+
    2022-11-13
    Android端搜索框 Android 搜索框
  • java  StringBuilder类的详解及简单实例
     java  StringBuilder类的详解及简单实例实现代码:public class StringBuilderTest { public static void main(String[] args...
    99+
    2023-05-31
    java stringbuilder bs
  • java 中Collection存储器详解及简单实例
    本篇仅为了巩固一下基础,回忆一下存储的这两个常用的东东…一、Collection存储对象可以考虑:①数组②结合数组存储对象的特点:Student[] stu = new Student[20]; stu[0] = new Stutdent(...
    99+
    2023-05-31
    java collection ava
  • Android 简单跳转页面工具的实例详解
    事情起源 activity 或者 fragment 每次跳转传值的时候,你是不是都很厌烦那种,参数传递。 那么如果数据极其多的情况下,你的代码将苦不堪言,即使在很好的设计下,也会很蛋...
    99+
    2024-04-02
  • java回调机制实例详解
    java回调机制实例详解以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中...
    99+
    2023-05-31
    java 回调机制 ava
  • Android ViewFlipper的详解及实例
    Android ViewFlipper的详解前言:View Flipper,是ViewAnimator的子类,而ViewAnimator又是继承自FrameLayout,而FrameLayout就是平时基本上只显示一个子视图的布局,由于Fr...
    99+
    2023-05-30
    android viewflipper pp
  • Android WebView的详解及实例
    Android WebView的详解      Android WebView在android平台上是一个特殊的View, 他能用来显示网页,这个类可以被用来在你的app中仅仅显示一张在线的...
    99+
    2023-05-30
    android webview roi
  • JCrontab简单入门实例详解
    本文实例为大家分享了JCrontab简单入门,供大家参考,具体内容如下创建一个JavaWeb项目首先要下载JCrontab的相关jar包,Jcrontab-2.0-RC0.jar。放到lib文件夹下。 在src下新建文件jcron...
    99+
    2023-05-30
    jcrontab 入门实例 实例详解
  • Android TextWatcher三个回调以及监听EditText的输入案例详解
    TextWatcher是一个监听字符变化的类。当我们调用EditText的addTextChangedListener(TextWatcher)方法之后,就可以监听EditText的...
    99+
    2024-04-02
  • Scrapy简单入门及实例讲解
    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 A...
    99+
    2023-01-31
    实例 入门 简单
  • Android中Progress的简单实例
    Android中Progress的简单实例Android中Progress网上的demo都是瞎扯淡,当然,你们也可以认为我的demo是瞎扯淡,因为,毕竟要理解别人的思路,很头疼,主要还是知道思路,然后一步一步慢慢来。今天我讲的是Progre...
    99+
    2023-05-31
    android progress gr
  • Android ViewPagerIndicator详解及实例代码
    Android ViewPagerIndicator详解及实例代码关于自定义View的属性零碎知识自定义View和自定义属性的知识不再此提及,这里着重说的是属性在自定义View中的获取方式,自定义的属性如下:<?xml ver...
    99+
    2023-05-31
    android viewpagerindicator age
  • springboot+dubbo+zookeeper的简单实例详解
    目录服务端消费端在dubbo-admin-0.0.1-SNAPSHOT.jar的路径下启动dubbo,java -jar dubbo-admin-0.0.1-SNAPSHOT.jar...
    99+
    2024-04-02
  • Android滚动菜单ListView实例详解
    本文实例为大家分享了Android使用ListView实现滚动菜单的具体代码,供大家参考,具体内容如下 说明:滚动菜单ListView及点击事件 代码结构: 1、创建一个list展示...
    99+
    2024-04-02
  • Android 获取传感器列表整理及简单实例
    Android 获取传感器列表整理及简单实例Android 4.4 (API等级19)支持以下传感器:   TYPE_ACCELEROMETER 加速度传感器,单位是m/s2,测量应用于设备X、Y、Z轴上的加速度 ...
    99+
    2023-05-31
    android 传感器 roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作