Android Stdio引入kotlin-android-extensions插件

2023-05-16

在Activity中使用Toast

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button 1"/>

</LinearLayout>
class FirstActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.first_layout)
        val button1 : Button = findViewById(R.id.button1)
        button1.setOnClickListener {
            Toast.makeText(this,"You clicked Button 1",Toast.LENGTH_SHORT).show()
        }
    }

在Activity中,可以通过findViewById()方法获取在布局文件中定义的元素,如上面代码,此处传入R.id.button1得到按钮的实例。findViewById()方法返回的是一个继承自View的泛型对象,kotlin无法自动推导出它是一个Button还是其他控件,此处需要将button1显示地声明成Button类型。得到该按钮的实例之后,再通过调用setOnClickListener()方法为按钮注册一个监听器,点击该按钮时就会执行监听器中的onClick()方法。

以上是只有一个按钮,可以调用findViewById()方法,但是如果布局文件中有10个控件呢,那需要调用10次该方法,而kotlin-android-extensions插件会根据布局文件中定义的控件id自动生成一个具有相同名称的变量,可以在Activity里直接使用这个变量,而不再调用findViewById()方法。

在Android Studio4.1以前我们新建kotlin项目ide会自动给我们引入该插件的引用,但是4.1以后就不再默认引入了,这个时候如果想再使用该插件,需要手动引入。

1、首先在项目的build.gradle中添加

2、接着是app中的build.gradle中添加

这个时候就不再需要使用findViewById()方法了

button1 按Alt+Enter快捷键,程序会自动导入相关设置的。

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

Android Stdio引入kotlin-android-extensions插件 的相关文章

  • 如何在Android中添加水平滚动视图和列表视图

    我正在尝试创建一个应用程序 因为我需要创建一个列表视图 但最重要的是我想要一个用于多个数据的水平列表视图 我很困惑我们该如何做到这一点 请帮助我 主要活动 XML
  • 如何更改我的应用程序的语言[重复]

    这个问题在这里已经有答案了 可能的重复 在 Android 中以编程方式更改语言 https stackoverflow com questions 2900023 change language programatically in an
  • 如何从活动启动另一个应用程序(下载或预安装)?

    基本上 我想获取所有已安装应用程序的列表 并选择一个从活动中运行 我尝试过使用 Intents 进行 ACTION PICK 但这似乎遗漏了已下载的应用程序 并且其中有一堆垃圾 Thanks to get the list of apps
  • 是否可以禁止 EditText 中的第一个数字为“0”

    您好 我只是想知道是否可以禁止用户输入的第一个数字为 0
  • OpenCV warpPerspective 性能缓慢

    在我的应用程序中 我跟踪一个物体 到达它的地方corners都在这个框架中 我发现它之间的单应性corners从最后一帧开始和 当前帧 使用单应性来做perspectiveTransform on the corners在当前帧中找到 得到
  • Android-无法解析符号 BaseObservable

    我正在尝试在 android 中实现数据绑定示例并使用可绑定变量创建 POJO 但我收到此错误 请帮忙 我正在关注这个教程http www vogella com tutorials AndroidDatabinding article h
  • EditText 的可绘制右侧

    下面是我的布局
  • Android:我需要关闭 Cursor 对象吗?

    在我的数据库适配器类中 我有很多这样的方法 public long getContactId final String phoneNumber throws SQLException final Cursor cur mDb rawQuer
  • 在 Android 应用程序中集成 Facebook 和 LinkedIn

    我有一个集成了 Facebook 和 LinkedIn 网络的应用程序 根据说明 为了集成 LinkedIn 我需要在我的活动中的清单中添加以下代码
  • 在 Android 媒体播放器上播放 MediaStore 中的音频

    有没有办法通过使用 MediaPLayer 播放从 MediaStore 获得的音频 或者我走的方向完全错误 到目前为止 我已经查看了 MediaStore Audio 但没有什么能真正帮助我 我只需要知道我是否走在正确的轨道上 首先 我假
  • 更改图库中的边框样式

    我正在服用this http www androidpeople com android gallery imageview example 教程 正如你所看到的this http www androidpeople com wp cont
  • 如何根据另一个动态下拉列表的值创建动态下拉列表?

    我有一个下拉菜单 当我选择一个选项时 它会创建一个动态下拉菜单 到目前为止 一切都很好 但我想创建另一个动态下拉列表 现在基于另一个动态下拉列表的值 我该怎么做 第一个动态下拉列表有效 我猜第二个无效 因为动态变量 div 没有静态 ID
  • Android 应用程序阿拉伯语支持

    我已经按照developer android官方网站上的教程Hello L10进行操作 但没有任何关于阿拉伯语的内容 Android 应用程序要使用阿拉伯语需要执行哪些步骤 例如 用户可以使用组合框或单选按钮来选择英语或阿拉伯语 我已经这样
  • listItems之间的黑线,如何删除?

    我的列表项之间有一些水平黑线 如何删除它们 我的图形没有一部分 谢谢 listview setDivider null listview setDividerHeight 0 或在 XML 中
  • 横向模式下视频视图不是全屏

    我正在使用用 xml 设计的视频视图 该视频在纵向模式下为全屏 但当切换到横向模式时 它会左对齐 并且宽度和高度都会换行 而不是全屏 我参考了这些 但仍然没有解决这个问题 全屏视频视图未居中 https stackoverflow com
  • 有没有在android中使用roboguice和fragment的简单例子?

    我在寻找使用 Fragments RoboGuice 的工作示例时遇到问题 当您尝试使用 Android 片段事务管理器添加 删除片段时会出现此问题 一旦您告诉片段从 RoboFragment 继承 事务管理器就不再认为该类是片段 因为它扩
  • 如何在Android中将字体粗细设置为细、常规

    我有 3 个文本视图 我需要将它们的粗细设置为 轻 常规 和 压缩 有人可以帮助我如何在 Android 中实现这一目标吗 Use android textStyle on a TextView设置文本样式 例如bold italic或正常
  • 使用 Android 2.x 进行实时音频流传输

    我需要在 2 x 及更高版本的设备上播放直播 This http developer android com guide appendix media formats html声明不可能在 Android 2 x 的设备上播放直播 我在这里
  • 如何从下到上连续移动图像?

    我一直在研究这个例子http obviam net index php a very basic the game loop for android http obviam net index php a very basic the ga
  • 是否可以从 Android Studio 恢复被覆盖的文件?

    由于错误 我覆盖了我的两个来自 android studio 的具有相同名称的项目 并且今天我已经取消了该操作 我尝试打开主项目 但发现其中没有 Java 类 只有布局文件 在我覆盖的第二个项目中 文件存在巨大混乱 并尝试使用 Androi

随机推荐

  • SpringCloud全套教程

    https gitee com didispace SpringCloud Learning
  • docker远程连接配置

    在开发的时候 xff0c 我们进程需要用到docker 但很多时候我们用的是window作为开发平台 xff0c 虽然Docker也有window版本的 但window的DockerToolbox是一款不是很成熟的产品 xff0c 有很多小
  • 单相逆变器及基于STM32 SPWM生成代码

    2022 4 26更新 若需商业合作可私聊留VX号 xff0c 博主看到后会添加的 最近在做单相逆变器 xff0c 用篇文章来记录 主电路采用H桥 xff0c 使用IR2104半桥驱动内置630ns死区 xff0c 上管采用自举电容浮地驱动
  • 20200329 百度 测试开发实习 笔试题

    20200329 百度 测试开发实习 笔试题 第一题题目描述 xff1a 输入输出样例输入样例输出提示 第二题题目描述 xff1a 输入输出样例输入样例输出 第一题 题目描述 xff1a 桌子上放着N枚硬币 xff0c 将其从1到N编号 x
  • 《Linux就该这么学》第1章 部署虚拟环境安装Linux系统

    Linux就该这么学 第1章 部署虚拟环境安装Linux系统 目录 常见的Linux系统版本 安装配置VM虚拟机 安装Linux系统 RPM xff08 红帽软件包管理器 xff09 Yum软件仓库 systemd初始化进程 需要长期稳定运
  • 辛勤劳作

    本文只有在12月27日可以学习到 我对敬业的体会是 xff1a 正在从事的工作就是自己的生命 xff0c 它意味着每周7天 xff0c 每年52周一心扑在上面 写下上面这句话 xff0c 我的泪水差一点儿就涌了出来 14年的寿险生涯 xff
  • RocketMQ

    1 主题中存在多个队列 xff0c 生产者向主题中指定的队列发送消息 2 在集群模式下 xff0c 一个消费者集群共同消费一个主题中的多个队列 xff0c 但一个队列只会被一个消费者消费 在广播模式下 xff0c 会被订阅主题的所有消费者消
  • 记一次Gradle搭建多模块项目遇到的问题

    前言 最开始 xff0c 我创建了一个空的项目 xff0c 并在该项目下依次创建了3个模块 但是我发现 xff0c 这几个模块引入的依赖绝大多数都是相同的 于是 xff0c 我灵光一闪 xff08 其实是在最初构建项目时的没想到 xff09
  • springboot 项目访问controller没有进入拦截器

    在项目中新写了一个校验token是否存在的拦截器之后 xff0c 编译和启动都没有问题 直到访问方法的时候发现并没有进入这个拦截器 后来发现是因为springboot在启动之后 xff0c 启动类只会扫描启动类所在的包下的方法 解决方法就是
  • leetcode 1170. 比较字符串最小字母出现频次(C++)

    我们来定义一个函数 f s xff0c 其中传入参数 s 是一个非空字符串 xff1b 该函数的功能是统计 s 中 xff08 按字典序比较 xff09 最小字母的出现频次 例如 xff0c 若 s 61 34 dcce 34 xff0c
  • maven私库nexus2.11.4迁移升级到nexus3.12.0

    https www cnblogs com liangyou666 p 9439755 html nexus简介 nexus是一个强大的maven仓库管理器 它极大的简化了本地内部仓库的维护和外部仓库的访问 nexus是一套开箱即用的系统不
  • Linux安装JDK8详细图文教程

    第一步 获取JDK文件 JDK下载包 xff1a 直接进入 如果跳转登录页面 xff0c 注册一个账号登录即可 登录过后文件就下载完成 第二步 上传JDK到服务器 1 创建JDK目录 span class token function mk
  • 购物商城shopping连载(11)

    订单模块类创建及配置 购物完成之后 xff0c 提交订单 xff0c 生成一个订单 订单表和商品的关系 xff1a 订单和商品的关系是多对多 xff0c 一个订单可以有多个商品 xff0c 一个商品可以属于多个订单 如果是多对多的关系 xf
  • CSS面试题:20道含答案和代码示例的练习题

    如何水平居中一个元素 xff1f 答案 xff1a 可以使用text align属性设置父元素的文本对齐方式为center xff0c 也可以使用margin属性设置元素的左右margin为auto 如何垂直居中一个元素 xff1f 答案
  • Ubuntu GNOME去除顶栏和窗口标题栏方法(亲测可用)

    一 环境 Ubuntu16 04 43 gnome3 gome shell 3 18 5 二 简介 因项目需要 xff0c 软件在 Ubuntu 系统中运行 xff0c 并且全屏显示 而在 Ubuntu 系统中 xff0c 侧边栏的自动隐藏
  • linux 配置FTP多个虚拟用户,私人目录+共享目录

    需求 xff1a 公司多个部门 xff0c 行政 xff0c 财务 xff0c 人事 xff0c 运营 xff0c 每个部门都能上传下载文件 xff0c pub目录是共享目录 xff0c 每个部门都可以上传下载 xff0c 但是无法删除 每
  • Java8新特性详解

    陈老老老板 说明 xff1a 新的专栏 xff0c 本专栏专门讲Java8新特性 xff0c 把平时遇到的问题与Java8的写法进行总结 xff0c 需要注意的地方都标红了 xff0c 一起加油 本文是介绍Java8新特性与常用方法 xff
  • java 基础 matches()方法的作用

    java lang包中的String类 xff0c java util regex包中的Pattern xff0c Matcher类中都有matches 方法 都与正则表达式有关 下面我分别举例 xff1a xff08 字符串 xff1a
  • 什么是建造者模式?

    为什么会有这个模式 xff1f 很多时候我们会构建非常复杂的类 xff0c 内部初始化构成需要进行很多复杂交互操作 xff0c 比如需要去数据库查询数据后作为属性初始值 xff0c 或者说我们想控制它的内部初始化的过程 xff0c 将构建过
  • Android Stdio引入kotlin-android-extensions插件

    在Activity中使用Toast lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34 gt lt LinearLayout xmlns android 61 34 http schema