kotlin的abstract抽象类与interface接口建模按钮android点击事件处理

news2025/1/21 3:00:09

kotlin的abstract抽象类与interface接口建模按钮android点击事件处理

例如:

abstract class View {
    private var listener: OnClickListener? = null
    private var enabled: Boolean = false

    constructor() {
        println("view constructor")
    }

    fun setClickListener(l: OnClickListener) {
        listener = l
    }

    fun setEnable(bool: Boolean) {
        enabled = bool
    }

    fun performClick() {
        println("view performClick")

        if (enabled) {
            listener?.onClick(this@View) //也可以this,this@后面指定是谁
        }
    }
}

interface OnClickListener {
    fun onClick(view: View)
}

class Button : View()

fun main(args: Array<String>) {
    var button = Button()
    button.setEnable(true)

    button.setClickListener(object : OnClickListener {
        override fun onClick(view: View) {
            println("on click")
        }
    })

    button.performClick()
}

输出:

view constructor
view performClick
on click

https://blog.csdn.net/zhangphil/category_12220817.htmlhttps://blog.csdn.net/zhangphil/category_12220817.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/625267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用法详解!postman接口自动化如何进行环境变量

目录 前言&#xff1a; 1.设置环境变量 2.设置全局变量 3.检查response body中是否包含某个string 4.检测JSON中的某个值是否等于预期的值 5.转换XML body为JSON对象 6.检查response body是否与某个string相等 7.测试response Headers中的某个元素是否存在(如:Content-…

自然语言处理: N-Gram实战

自然语言处理: 第一章N-Gram 一. 理论 定义: 语言模型在wiki的定义是统计式的语言模型是一个几率分布&#xff0c;给定一个长度为 m 的字词所组成的字串 W1 , W2 &#xff0c; &#xff0c;Wn &#xff0c;派几率的字符串P(S) P(W1 , W2 , &#xff0c;Wn &#xff0c; )而其…

web audio音效播放器/音乐播放器

这是一个基于Web Audio API、HTML和CSS构建的高级网页音频播放器。它允许用户播放音频文件、控制播放、可视化音频&#xff0c;并应用音频效果和过滤器。 Github仓库&#xff1a; https://github.com/sonichen/Web-Based-Audio-Player 希望大家多多star 环境 操作系统&#…

Android逆向解析加壳与脱壳技术

加壳 加壳是指在 APK 文件中插入额外的代码或数据&#xff0c;使得原始代码难以被分析和反编译。通常加壳是为了保护软件的知识产权或者防止逆向工程。下面是 Android 加壳的一般流程&#xff1a; 选择加壳工具&#xff1a;选择合适的加壳工具进行加壳&#xff0c;比如市面上…

【SpringCloud-1】注册中心-Eureka

springcloud微服务&#xff0c;相对于dubbo这种SOA架构&#xff0c;提供了一站式的全套解决方案&#xff0c;什么意思呢&#xff1f;就是说springcloud不需要依赖其他组件&#xff0c;自己提供了全套的 常规项目需要使用的技术和解决问题的方案。 比如dubbo需要依赖zk作为注册…

一文读懂二叉树

大家好&#xff0c;我是三叔&#xff0c;很高兴这期又和大家见面了&#xff0c;一个奋斗在互联网的打工人。 什么是二叉树 二叉树是一种由节点&#xff08;Node&#xff09;组成的数据结构&#xff0c;每个节点最多有两个子节点。它具有良好的层次结构&#xff0c;便于搜索和…

chatgpt赋能python:Python如何将IP地址转换为整数

Python如何将IP地址转换为整数 在计算机网络中&#xff0c;IP地址是一个包含32位的二进制数字&#xff0c;通常由四个8位二进制数字&#xff08;即“点分十进制”&#xff09;表示。但在某些情况下&#xff0c;需要将IP地址转换为整数&#xff0c;例如在网络编程中检查网络连接…

C语言:编写代码,演示多个字符从两端移动,向中间汇聚

题目&#xff1a; 给出第一个字符串&#xff0c;如&#xff1a;"welcome to school!!!!!"&#xff0c; 设置第二个字符串&#xff1a;"######################"&#xff0c; 两字符串字符数相等。 从第二个字符串两端开始移动&#xff0c;向中间汇聚&#…

Python 中判定整数

直接数值判定&#xff0c;表达式判定。 (本笔记适合学会 Python 基本数据类型&#xff0c;可以“融会贯通”的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#…

IGP协议对SR-MPLS的扩展

目录 OSPF对于SR-MPLS的扩展 OSPF对邻接SID做了细分 10类LSA定义的TLV类型 10类LSA定义的TLV的报文格式 ISIS对SR-MPLS的扩展 ISIS对邻接SID做了细分 ISIS定义的Sub-TLV的类型 ISIS定义的Sub-TLV的报文格式 OSPF对于SR-MPLS的扩展 OSPF为了支持SR-MPLS通过新…

Vue.js 3.x Composition APIs 及简单使用

文章目录 Vue 3.0 和 2.x 的区别源码组织方式packages 目录结构 不同构建版本Composition API 设计动机设计动机Options API Demo:Composition API Demo:对比&#xff1a; 性能提升响应式系统升级编译优化优化打包体积 ViteESModuleVite as Vue-CLIVite 特点 Composition APICo…

NLP学习笔记三-数据处理基础

NLP学习笔记三-数据处理基础 NLP设计的处理处理技术也比较多&#xff0c;我们简单介绍一部分&#xff1a; 1.Tokenization NLP当中的Tokenization&#xff0c;博主以前无论是在文章中还是在代码中都能经常看到&#xff0c;这在自然语言处理中也是比较常用的技术。 Tokenizati…

ASEMI代理英飞凌TLD2314EL参数,LED驱动器TLD2314EL

编辑-Z TLD2314EL参数描述&#xff1a; 型号&#xff1a;TLD2314EL 电源电压VS&#xff1a;40V 输出电压VOUTx&#xff1a;40V 状态电压VST&#xff1a;6V 输出电流IOUTx&#xff1a;130 mA 结温Tj&#xff1a;-40~ 150℃ 储存温度Tstg&#xff1a;-55~ 150℃ 正常工作…

要不是和阿里P7聊过,我也不知道自己是个棒槌

前几天和一个朋友聊面试&#xff0c;他说上个月同时拿到了测试开发岗位腾讯和阿里的offer&#xff0c;最后选择了阿里。 阿里内部将员工一共分为了14个等级&#xff0c;P6是资深工程师&#xff0c;P7是技术专家。 其中P6和P7就是一个分水岭了&#xff0c;P6是最接近P7的不持股…

# Windows 专业版安装 Hyper-V

Windows 专业版安装 Hyper-V 文章目录 Windows 专业版安装 Hyper-V检查要求硬件要求安装方式使用 PowerShell 启用 Hyper-V使用 CMD 和 DISM 启用 Hyper-V通过设置启用 Hyper-V 角色 创建虚拟机Hyper-v 管理器创建Hyper-V Quick Create 完整官网地址&#xff1a;Windows 10 上的…

SpringCloud-Gateway的详细讲解以及完整的示意图和代码-下

目录 二说Gateway 路由配置 创建com/springcloud/config/GateWayRoutesConfig.java 测试 动态路由 示意图 代码实现 测试 注意事项和细节 代码 Predicate/断言 基本介绍 Route Predicate Factories 解读 Route Predicate 实例 After Route Predicate 测试 B…

tamper脚本编写与mitmdump

tamper脚本编写与mitmdump 0x01 前提 ​ 注入点在登录框处&#xff0c;但是目标每次都会先校验验证码&#xff0c;而验证码会在返回包中以json格式出现。 0x02 编写tamper脚本 由于目标的验证码在response中回显出来了&#xff0c;所以我们可以利用tamper脚本去读取验证码&a…

Python:SVOREX

公式看懂了就写导数。写完导数撸码 Car数据集上对比: 在Car数据集上,SVOREX稍微胜出。 """ SVOREX author: Daniel He at CQUPT 2023-06-08 """ import xlwt import xlrd import numpy as np import pandas as pd import matplotlib.pylab a…

17.16按摩师

目录 一、题目 二、分析代码 一、题目 面试题 17.16. 按摩师 - 力扣&#xff08;LeetCode&#xff09; 二、分析代码 class Solution { public:int massage(vector<int>& nums) {int nnums.size();// vector<int>dp(n,0);// if(n<0)// return 0;// if(n1…

Docker部署ssh连接工具webssh2

Docker部署ssh连接工具webssh2 一、检查系统版本二、检查docker状态三、下载webssh2镜像四、创建webssh2容器1.创建webssh2容器2.查看webssh2状态3.查看容器运行日志 五、访问webssh21. 访问webssh22. 远程连接服务器3. 文件管理 一、检查系统版本 检查操作系统版本 [rootserve…