Android开发:使用Lambda表达式高效开发

2023-05-16

简介:

JDK1.8后java开始支持Lambda表达式,使用Lambda表达式我们就可以在Android中替换匿名类的写法。本来一个Button点击事件监听要写6行代码,我们1行就可以搞定。

1.引入依赖

implementation 'me.tatarka:gradle-retrolambda:3.6.0'

2.修改我们JDK成1.8

在Android studio中打开File>project Structure>Modules,将我们的JDk设置成1.8的,快捷键是ctrl+shift+alt+s。
在这里插入图片描述

3.使用Lambda表达式

设置Button监听旧的写法:

    Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              //执行代码
            }
        });
        

使用Lambda表达式,v代表onClick(View view)中的view

 button.setOnClickListener(v -> {
            //执行代码
        });

创建线程旧的写法

  new Thread(new Runnable() {
            @Override
            public void run() {
                //执行代码
            }
        }).start();

使用Lambda表达式,run()方法没有参数,顾使用()来表示

    new Thread(() -> {
            //执行代码
        }).start();

checkBox状态改变监听旧写法

checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                //执行代码
            }
        });

使用Lambda表达式,onCheckedChanged()方法有俩个参数,因此用()把参数包起,buttonView对应compoundButton,isChecked对应b

     checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
            //执行代码
        });

使用起来还是很方便的:匿名内部类中的方法没有参数时就用()表示,有一个参数是就用一个参数v表示,如果有多个参数则用()包起来,参数之间逗号隔开。

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

Android开发:使用Lambda表达式高效开发 的相关文章

随机推荐

  • VSCode配置C++环境(MSVC)

    VSCode配置C 43 43 环境 xff08 MSVC xff09 最近心血来潮 xff0c 想用一下微软的VSCode写一下C 43 43 xff0c 然而第一步就卡住了 xff0c 竟然不会配置C 43 43 环境 xff0c 陆陆
  • GTSAM理解

    1 xff1a GTSAM是什么 参考博文 xff1a gtsam xff1a 从入门到使用 1 xff1a 是什么 xff1a GTSAM是用于计算机视觉和多传感器融合方面用于平滑和建图的C 43 43 库 xff0c GTSAM采用因子
  • tag与branch的区别

    1 什么是tag 什么时候应该创建一个tag 项目的版本管理中 每当一个release版本发布时 需要做一个记录 以便以后需要的时候能查找特定的版本 这时候就用到tag这个功能 Git中的tag指向一次commit的id xff0c 通常用
  • 简历中“项目经历“该如何写?

    前言 找工作 xff0c 简历是最关键的一步 xff0c 只有通过了简历筛查才能往下继续进行 很多人写简历 xff0c 都是在记录流水账 xff0c 看来没有任何平淡寡味 其实简历的核心价值就在于游说 hr 和面试官 xff1a 看我 xf
  • 深度学习解释:Precision、Recall、IoU、Ap/mAp

    深度学习的指标都是 xff08 APAverage Precision xff09 二分类情况下的Precision xff08 查重率 xff09 和Recall xff08 查全率 xff09 对于二分类问题 xff0c 可将样例根据其
  • input上传文件图片本地预览

    lt form gt lt input type 61 34 file 34 id 61 34 avatar 34 name 61 34 avatar 34 gt lt button gt 点击上传 lt button gt lt form
  • colmap pthread 错误

    Looking for include file pthread h Looking for include file pthread h found Looking for pthread create Looking for pthre
  • 全球系留无人机系统行业调研及趋势分析报告

    本文调研和分析全球系留无人机系统发展现状及未来趋势 xff0c 核心内容如下 xff1a xff08 1 xff09 全球市场总体规模 xff0c 分别按销量和按收入进行了统计分析 xff0c 历史数据2017 2021年 xff0c 预测
  • 安装arm-none-eabi版本添加环境变了还是出错问题解决

    安装arm none eabi版本添加环境变了还是出错问题解决 问题解决 问题 已经在 profile文件里面添加了如下命令 span class token keyword export span span class token con
  • 基于ubuntu16.04 塔建PX4编译环境

    基于ubuntu16 04 塔建PX4编译环境 基于ubuntu16 04 塔建PX4编译环境环境塔建官网网址 xff1a 权限设定删除modemmanager更新软件包列表 xff0c 并为所有PX4构建目标安装以下依赖项 安装pyulo
  • APM编译记录-基于OMNIBUSF4-V3飞控板

    APM编译记录 基于OMNIBUSF4 V3飞控板 APM编译记录Bootloader问题固件编译 APM编译记录 初次使用APM xff0c 根据博客文章以及结合官方教程摸索 xff0c 发现和PX4还是有挺大差别的 xff0c 目前系统
  • ubuntu16.04基于eclipse搭建px4编译环境+Jlink调式

    ubuntu16 04基于eclipse搭建px4编译环境 43 Jlink调式 xff09 ubuntu16 04基于eclipse搭建px4编译环境 43 Jlink调式一 工具获取1 eclipse2 jlink3 jdk4 arm
  • Ardupilot通过mavlink + 4way_protocol对BLHeli_s电调的读写

    Ardupilot通过mavlink 43 4way protocol对BLHeli s电调的读写 前言上位机1 Mission Planner2 BLHeliSuite3 BLHeliSuite32 Ardupilot 源码编译1 启动B
  • C/C++中 float与uint16类型转换方法

    C C 43 43 中 float与uint16类型转换方法 为什么要做float与uint16互相转换方法一 xff1a 方法二 xff1a 为什么要做float与uint16互相转换 此需求在串口通信时常常会被用到 xff0c 串口只能
  • Keil V5仿真出现*** error 65: access violation at 0x40021000 : no ‘read‘ permission 解决办法

    Keil V5仿真出现 error 65 access violation at 0x40021000 no 39 read 39 permission 解决办法 问题解决办法1 进入debug的map设置地址2 新建debug ini配置
  • Ardupilot-NMEA协议的GNSS处理优化

    Ardupilot NMEA协议的GNSS处理优化 Ardupilot NMEA协议的GNSS处理优化原固件存在的问题解决办法 Ardupilot NMEA协议的GNSS处理优化 原固件存在的问题 1 当所使用的GNSS模块数据反馈频率不到
  • FMT-模型在环仿真(MIL)

    前提条件 matlab版本是2018B及以上版本下载好了FMT Model工程 设置MIL仿真 打开matlab xff0c 进入到FMT Model目录 xff0c 左键双击打开FMT Model prj 打开过程它自己会初始化工程 xf
  • 【移植Ardupilot的日志记录方法到linux上】

    移植Ardupilot的日志记录方法到linux上 说明日志结构组成日志写入操作预定义日志项运行时添加日志项的方法 单例测试编译方法查看数据其他 说明 采用二进制文件记录 xff0c 可在mission planer查看 支持所有数据类型记
  • 一、linux内核源码分析(内核源码结构组成)

    应该说是把linux内核这部分知识提前了 xff0c 因为坐公交需要点视频来打发一下时间 xff0c 感觉linux内核的视频就不错 xff0c 就顺便把linux内核提前了 这一次也是打算视频和书一起看 xff0c 然后总结 书的话还是推
  • Android开发:使用Lambda表达式高效开发

    简介 xff1a JDK1 8后java开始支持Lambda表达式 xff0c 使用Lambda表达式我们就可以在Android中替换匿名类的写法 本来一个Button点击事件监听要写6行代码 xff0c 我们1行就可以搞定 1 引入依赖