如何写监听回调(事件完成监听、点击响应监听 )

2023-11-17

 
 
转载请注明出处:如何写监听回调(事件完成监听、点击响应监听 )_Mr_Leixiansheng的博客-CSDN博客 

* 主要对监听回调做一个简单说明
* 监听的作用:某一事件只要出现,就会调用其对应的方法,进行响应操作
*
* 方式有2
* 1:常规方式。和控件设置点击监听一样,点击后实现响应操作
* 2:方法调用方式。常用于等待某一事件完成后在进行相应操作,比如数据获取,再刷新UI。要先等待数据获取完毕才能刷新。
内容:通过监听方式,获取数据,再刷新UI
步骤:
1、新建一个类
2、类中定义一个接口
3、对外暴露接口(无论是点击方式暴露,还是调用方法暴露)(接口的方法中可以传递数据)
4、主程序中设置监听,调用接口,在监听中获取数据,以handler方式刷新UI
代码如下:
1、新建类,设置好监听
 
package com.leixiansheng.testlistener; import android.content.Context; import android.util.Log; /** * Created by Leixiansheng on 2017/6/28. */ public class JsonData { private Context context; //构造函数,获取上下文 public JsonData(Context context) { this.context = context; } //定义接口 public interface OnLoadingFinishListener { public void getData(String str); } //调用方法方式对外暴露接口 public void connect(OnLoadingFinishListener listener) { Log.i("JsonData", "connect"); listener.getData("实现一个监听回调功能"); } //点击监听方式对外暴露接口(一般要继承某些父类) private OnLoadingFinishListener listener; public void setOnLoadingFinish(OnLoadingFinishListener listener) { this.listener = listener; } /** * 之后在方法中实现对listener.getData即可 */ }
2、主场呢供需中实现监听回调
 
package com.leixiansheng.testlistener; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; /** * 主要对监听回调做一个简单说明 * 监听的作用:某一事件只要出现,就会调用其对应的方法,进行响应操作 * * 方式有2 * 1:常规方式。和控件设置点击监听一样,点击后实现响应操作 * 2:方法调用方式。常用于等待某一事件完成后在进行相应操作,比如数据获取,再刷新UI。要先等待数据获取完毕才能刷新。 */ public class MainActivity extends AppCompatActivity { private JsonData.OnLoadingFinishListener mListener; private JsonData jsonData; private TextView tvData; private String setText; /** * handler方式刷新界面 */ private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); tvData.setText(setText); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvData = (TextView) findViewById(R.id.json_data_tv); jsonData = new JsonData(this); /** * 设置监听 */ mListener = new JsonData.OnLoadingFinishListener() { @Override public void getData(final String str) { //此处获取数据 Log.i("MainActivity:", str); setText = str; //求情刷新UI handler.sendEmptyMessageDelayed(1, 2000); } }; //方法式调用接口 jsonData.connect(mListener); /** * 点击监听式调用接口 */ jsonData.setOnLoadingFinish(new JsonData.OnLoadingFinishListener() { @Override public void getData(String str) { Toast.makeText(MainActivity.this, "点击监听式调用接口",Toast.LENGTH_SHORT).show(); } }); } } 

布局只有一个TextView
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何写监听回调(事件完成监听、点击响应监听 ) 的相关文章

随机推荐

  • 文心一言、讯飞星火与GPT-4/3.5在回答中文历史问题的表现

    最近 随着备受关注的文心一言正式免费向全社会开放 再次引起了社会层面对国产大模型的兴趣 以文心一言为代表的国产大模型性能究竟如何 如果将它们相互比较 并且和GPT系列模型等国际前沿水平的LLM进行比较 会得到什么样的结果呢 笔者对此非常好奇
  • Python所有方向的学习路线图

    在放这个路线图之前 我先做一个简单的介绍 避免新手小白有什么不理解的 这个学习路线上面写的是某个方向建议学习和掌握的知识带你 这样学习下来之后会更加容易掌握 知识体系会比较全面 比自己单纯的自学效果好很多 不至于看到什么就学什么 容易走弯路
  • 二,ES6中新增const关键字的使用方法

    之前用var声明变量 变量想怎么改就怎么改 这里const关键字也是声明变量的 不过声明的是常量 常量就是固定的一个值 不能改变 例如 const name 唐僧 name 老沙 报错 因为它要更改常量name 只在块级作用于起作用 和le
  • Windows10 java环境变量的配置详细教程(Windows10 和Windows11)

    java环境变量的配置详细教程 1 首先要区分一下Windows10 2021年之前的版本和Windows10 2021年之后的版本 Windows10 2021年之后的版本和Windows11 系统在配置java上差不多 故不作区分 1
  • Intellij IDEA svn的使用记录

    这里的忽略一直灰色的 可以进入 这里的版本控制里进行忽略选择 或者 这里进行添加 这里有三个选择 按照顺序 1 忽略指定的文件 2 忽略文件夹下所有文件 3 忽略符合匹配规则的文件 到Commit Changes 这里有几个选项需要了解的
  • Vue实例挂载的过程

    一 思考与分析 我们都听过知其然知其所以然这句话 那么不知道是否思考过new Vue 这个过程中究竟做了些什么 过程中是如何完成数据的绑定 又是如何将数据渲染到视图的等等 首先找到vue的构造函数 源码位置 src core instanc
  • 因为强行关机, 而导致的fedora23 不能重新启动, 卡在开机logo那里的 修复 解决方案...

    其实 fedora23的U盘live 也很好用 很流畅 主要还是 要用一个比较好的 快的 U盘 这样live U盘在4GB 3 75GiB 的内存中还是较快的 原来的U盘live系统用得很卡 可能是因为 U盘太烂的原因 要方便的使用live
  • SAXParserFactoryImpl cast SAXParserFactory异常

    Caused by java lang ClassCastException com sun org apache xerces internal jaxp SAXParserFactoryImpl cannot be cast to ja
  • web攻击日志分析之新手指

    0x00 前言 现实中可能会经常出现web日志当中出现一些被攻击的迹象 比如针对你的一个站点的URL进行SQL注入测试等等 这时候需要你从日志当中分析到底是个什么情况 如果非常严重的话 可能需要调查取证谁来做的这个事情 攻击流程是什么样子的
  • AlibabaProtect 卸载,不使用其他软件

    背景 发现系统中存在AlibabaProtect服务 停止不掉 文件夹也删除不掉 还占用内存 CPU 在网上也搜了很多其他的步骤 发现不太容易 这是整理的比较简单的 不需要装其他软件 步骤 1 删除注册表 AlibabaProtect搜索之
  • 华为OD机试-最长连续方波信号

    Online C compiler to run C program online include
  • docker-engine安装

    最近一直在使用docker 做一些试验 每个新机器都需要部署docker的环境 环境信息如下 RedHat 7 2 安装 docker官方的安装 docker engine 1 sudo rpm import https sks keyse
  • Webpack5优化之提高代码运行性能(Preload、Network Cache、Core-js、PWA)

    文章目录 一 Preload Prefetch 1 1 为什么 1 2 是什么 1 2 1 共同点 1 2 2 区别 1 2 3 问题 1 2 4 总结 1 3 怎么样 1 3 1 安装依赖 1 3 2 配置 1 3 3 测试 二 Netw
  • python获取微信群消息_python-itchat 统计微信群、好友数量,及原始消息数据的实例...

    coding utf 8 import itchat from itchat content import TEXT from itchat content import import sys import time import re r
  • LeetCode Week 4

    LeetCode Week 4 练腿是最虐的项目 没有之一 问题集合 1 Reverse Words in a String III Easy 557 Given a string you need to reverse the order
  • 如何高效安装MindSpore的GPU版本

    作者 王磊 更多精彩分享 欢迎访问和关注 https www zhihu com people wldandan MindSpore的GPU版本以前的安装指南 只写清楚了安装依赖 但没有明确指出安装具体执行的命令 缺乏实操性 比较依赖开发者
  • 整流七 - 三相PWM整流器—公式推导篇

    此篇文章为了进一步理解三相pwm整流器 前期的四象限产品 以及仿真模型都没有彻底理解三相pwm整流器的数学模型 于是现在开始一步步推到整流器各个环节的数学公式 三相PWM整流器拓扑结构 补充 三相 VSR 中 交流侧电感的设计尤为重要 起到
  • 面积积分_A-level数学:必考题型之积分求面积解题技巧汇总!!!

    对于A level 数学的pure Math考试部分 总有那么一道积分求面积的题 很多同学在做这种题的时候总是觉得即使自己充分调动学过的所有公式都无法做出来 导致失分 那么今天潘老师带大家一起总结一下 1积分的物理意义 我们知道积分其实是微
  • SAR成像系列:【15】合成孔径雷达(SAR)运动补偿

    不同于光学图像 SAR图像的获取的本质是方位信号的累积结果 也就是说是在合成孔径时间内的电磁波照射结果 类似于光学成像中的延时拍照 通常使用手机拍照时 若拍照的手臂出现抖动 那么得到的照片就会变模糊 同样的现象也会出现在SAR图像中 SAR
  • 如何写监听回调(事件完成监听、点击响应监听 )

    转载请注明出处 如何写监听回调 事件完成监听 点击响应监听 Mr Leixiansheng的博客 CSDN博客 主要对监听回调做一个简单说明 监听的作用 某一事件只要出现 就会调用其对应的方法 进行响应操作 方式有2 1 常规方式 和控件设