首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kotlin入门(2)让App开发变得更容易

上一篇文章介绍了如何搭建Kotlin开发环境,可是这个开发环境依然基于Android Studio,而在Android Studio上使用Java进行编码,本来就是理所应当...选择菜单后打开KotlinActivity创建页面,单击“Next”按钮进入创建信息填写页面,如下图所示: ?...这里填上Activity名称EasyActivity,对应布局文件名则为activity_easy,最后单击“Finish”按钮完成EasyActivity.kt创建。...现在给前面创建布局文件activity_easy.xml添加几个TextView和Button控件,布局比较简单就不贴了。...比如现在有个名为tv_helloTextView控件,准备在代码把tv_hello显示文本改为“你好呀”,这用Java编码的话即是下面两行代码: TextView tv_hello =

1.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

KotlinKotlin 中使用 Lambda 表达式替代对象表达式原理分析 ( 尾随 Lambda - Trailing Lambda 语法 | 接口对象表达式 = 接口#函数类型对象 )

; foo(5) { x -> x * x } 二、Kotlin 中使用 Lambda 表达式替代对象表达式原理 ---- 1、Lambda 替换对象表达式 在使用 Kotlin 开发 , 经常遇到这种情况..., 最后一个函数是匿名内部类 , 匿名内部类只实现了一个函数 , 此时使用 Lambda 表达式替代该 匿名内部类 ; 如 : 为按钮添加点击事件 , 对应 Java 代码是 button.setOnClickListener...View) { // 点击事件 } }) 更进一步简写为 : button.setOnClickListener { // 点击事件 } 2、原理分析 Kotlin 对象表达式 , object...*/ void onClick(View v); } 下面是 IntelliJ IDEA , 为 View 组件设置 点击事件 , 输入 setOnClickListener...接口中 void onClick(View v); 函数类型 ; 如果 在 setOnClickListener 函数设置了 (View) -> Unit 类型 Lambda 表达式 , Kotlin

1.2K20

Android Studio 4.1 发布啦

Kotlin 1.3.72 Android Studio 4.1 捆绑了Kotlin 1.3.72,其中包括许多用于改善Kotlin高亮显示,检查和代码完成修复程序,请查看1.3.72 Kotlin更改日志获取详细信息...类),Android Studio现在向您显示自定义视图预览,使用工具栏下拉菜单可在多个自定义视图之间切换,或单击按钮以垂直或水平环绕内容。...本机崩溃报告符号 当本机代码发生崩溃或ANR,系统会生成堆栈跟踪,该跟踪是程序崩溃之前一直在程序调用嵌套函数序列快照。...这些快照可以帮助开发者识别和修复任何问题,但是必须首先将它们符号化,以将计算机地址转换回人类可读函数名。...and Restart Activity 将这些更改部署到正在运行应用程序

6.4K10

Kotlin入门(20)几种常见对话框

这个提醒对话框便是App开发常见AlertDialog,说起这个AlertDialog,安卓开发者都有所耳闻,该对话框不外乎消息标题、消息内容、确定按钮、取消按钮这四个要素,使用Java编码显示提醒对话框...,以及每项文本布局文件; 2、其次要定义一个选择监听器OnItemSelectedListener,在用户选中某项触发,响应文本项选中事件; 3、最后Spinner控件依次设置选择对话框标题...倘若仅仅是一个带箭头文本,毫无疑问使用文本视图TextView就可以了,箭头图标可以在布局文件通过drawableRight属性来指定。...于是布局文件下面Spinner节点: <Spinner android:id="@+id/sp_dialog" android:layout_width...编码,看起来十分矩,可是仍然显得拖泥带水,很简单功能也花费了六行Java代码。

1.6K10

Kotlin入门(20)几种常见对话框

这个提醒对话框便是App开发常见AlertDialog,说起这个AlertDialog,安卓开发者都有所耳闻,该对话框不外乎消息标题、消息内容、确定按钮、取消按钮这四个要素,使用Java编码显示提醒对话框...,以及每项文本布局文件; 2、其次要定义一个选择监听器OnItemSelectedListener,在用户选中某项触发,响应文本项选中事件; 3、最后Spinner控件依次设置选择对话框标题...倘若仅仅是一个带箭头文本,毫无疑问使用文本视图TextView就可以了,箭头图标可以在布局文件通过drawableRight属性来指定。...于是布局文件下面Spinner节点:         <Spinner         android:id="@+id/sp_dialog"         android:layout_width...编码,看起来十分矩,可是仍然显得拖泥带水,很简单功能也花费了六行Java代码。

2.7K30

Android Jetpack 之ViewBinding和DataBinding

ViewBinding 通过视图绑定,系统会为模块每个 XML 布局文件生成一个绑定类,通过绑定类,我们可以直接操作控件id,而不需要findViewById,这样我们可以避免控件id无效出现空指针问题...首先我们新建项目,新建MainActivity,对应布局文件名为:activity_main,在模块build.gradle开启视图绑定: viewBinding { enabled =...我们当前做是静态数据绑定,很多时候我们都需要动态绑定,那么如何在数据变化时候自动更新呢? 使用可观察数据对象 可观察字段 可观察数据类型 类型如下: ?...接下来 我们添加一个按钮按钮重新设置user数据 btnChanged = findViewById(R.id.btn_change); btnChanged.setOnClickListener...在Main2Activity同样设置初始值,点击按钮改变值 ActivityMain2Binding activityMain2Binding = DataBindingUtil.setContentView

3.8K30

Android Jetpack系列之ViewBinding和DataBinding

ViewBinding 通过视图绑定,系统会为模块每个 XML 布局文件生成一个绑定类,通过绑定类,我们可以直接操作控件id,而不需要findViewById,这样我们可以避免控件id无效出现空指针问题...首先我们新建项目,新建MainActivity,对应布局文件名为:activity_main,在模块build.gradle开启视图绑定: viewBinding { enabled =...我们当前做是静态数据绑定,很多时候我们都需要动态绑定,那么如何在数据变化时候自动更新呢? 使用可观察数据对象 可观察字段 可观察数据类型 类型如下: ?...接下来 我们添加一个按钮按钮重新设置user数据 btnChanged = findViewById(R.id.btn_change); btnChanged.setOnClickListener...在Main2Activity同样设置初始值,点击按钮改变值 ActivityMain2Binding activityMain2Binding = DataBindingUtil.setContentView

1.9K20

Kotlin 第二弹:Android PDF 创建与渲染实践

但是,我一起认为编程最重要是编程思想,不管 Java 也好,Kotlin 也好,都是为了实现功能。而本文主要目的是介绍在 Android 如何创建 PDF 文件。...而在实现过程,大家可以见识到一些常见 Kotlin 用法,特别的地方我会稍微讲解一下。比如难于理解 lambda 表达式我有在代码运用,然后文中会做比较详细解释。...我们可以在 MainActivity 布局文件随意弄一些布局。 ?...注意布局那个按钮,当点击按钮后将生成 PDF 文件,由于生成 PDF 比较耗时,所以在生成过程中会弹出一个进度对话框,生成成功后将消失,然后打开生成 PDF 文件。...id 是 activity_main,所以调用 creatPDF(view: View) 这个 view 就是 activity_main,我目的就是在 PDF 第一页映射这个布局

2.2K10

​使用Kotlin和Android Studio开发Android应用详细教程

本教程将详细介绍如何使用Kotlin和Android Studio开发一个简单Android应用,包括项目的创建、界面设计、代码编写以及运行应用。...步骤1:安装Android Studio和配置环境首先,确保你系统已经安装了最新版本Android Studio。你可以从官方网站下载并按照安装指南进行安装。...选择所需语言,确保选择了Kotlin。点击“Finish”完成项目的创建。步骤3:设计应用界面在res/layout目录下找到activity_main.xml文件,这是应用主界面布局文件。...在该文件,你可以编写与应用逻辑相关Kotlin代码。...例如,以下代码将在按钮点击更改文本:import android.os.Bundleimport android.view.Viewimport android.widget.TextViewimport

66710

Android使用ViewBinding

前言 原始方式 在我们开发过程,需要获取XML布局文件ViewId,以便其赋值显示,我们习惯使用findViewById进行操作,可这样会导致很多模版代码出现。...基于Kotlin扩展 近几年Android对Kotlin支持,我们开始使用 Android Kotlin extensions。 在文件中导入布局文件直接引用viewId。...ViewBinding 使用了编译生成绑定类,在 xml 布局文件每个视图都会生成一个对应绑定类对象,因此在编译检测到视图名称错误。...在多个模块引用同一个视图可能会出现命名冲突问题,需要通过手动指定全限定名解决。...如果想在生成绑定类忽略某个布局文件,将tools:viewBindingIgnore=”true”`属性添加到相应布局文件根视图中。

41321

Kotlin开发一些实用小技巧总结

延迟加载能让程序启动时间更快,因为加载被推迟到访问变量。 这在使用 Kotlin Android 应用程序而不是服务器应用程序特别有用。...Companion Object(伴生对象) Kotlin 是没有静态变量与方法。相对应,可以使用伴生对象。伴生对象允许定义常量和方法,类似于 Java static。...: kotlinextensions.com 11. lateinit 对于 Null 检查是 Kotlin 特点之一,所以在数据定义,初始化数据。...invoke(this) 16. with 函数 with 是一个非常有用函数,它包含在 Kotlin 标准库。它接收一个对象和一个扩展函数作为它参数,然后使这个对象扩展这个函数。...有一些解决方案,如 Butterknife 库,可以节省很多代码,但是 Kotlin 采取另一个步骤,允许您从一个导入布局导入对视图所有引用。 例如,这个 XML 布局: <?

1.1K10

学习|Android实现进度条按钮功能(kotlin

本文长度为1029字,预计阅读4分钟 Android实现按钮进度条 前面几章做了检测TTS及怎么样进度条下载文章,原想结合几个知识点做一个实战操作,模仿应用宝等手机助手那种列表下载方式,计划中发现有一环是需要实现个一按钮进度条方式...,看了看以前没有相关东西,那这篇我们就在看看Android怎么实现按钮进度条功能。...实现思路 要实现ProgressBar加上Button方式,我们需要自定义类继承自View 然后在进度条滚动时候进行样式布局重画 创建xml自定义属性和点击接口监听事件 实现按钮进度条,并重新按钮事件...划重点 我这里实现是一个简单方式,可以在这个基础上加上自己一些新设计,比如说加载进度条颜色和背景色重设,按钮在不同状态下不同颜色,进度条状态监听等方法实现。...微卡智享 activity_main.xml 在主窗体布局文件可以直接就加入我们刚才已经生成ProgressButton <?

1.7K20

Kotlin学习日志(六)控件使用

好了,废话说有点多了,接下来进入正题,Kotlin控件使用。 快捷查看 前言 一、简单控件使用 1.1 按钮Button 1. 匿名函数方式 2. 内部类方式 3....只不过由于多数情况用不到视图对象,因此在Kotlin把冗余视图入参给省略了,但是为了弄清楚按钮事件来龙去脉,还是有必要观察一下它本来面貌,接下来依次介绍按钮事件三种Kotlin编码方式:匿名函数...此时函数体代码还有两个值得注意地方: (1)因为视图View是基本视图类型,并不存在文本属性,所以需要把这个视图对象变量类型转换为按钮Button,然后才能得到按钮对象文本,Kotlin类型转换通过关键字...在Java,复合按钮CompoundButton勾选状态有两个,setChecked和isChecked,前者用于设置是否勾选,后者用于判断是否勾选,但在Kotlin这两个方法被统一成了isChecked...,该属性为vertical,单选按钮就在垂直方向上排列,并且RadioGroup下面除了RadioButton外,也可以挂载其他子控件,如TextView、ImageView等,这样看来,它就是一个特殊线性布局

1.7K30

Android自定义控件

选择按钮可扩展性主要体现在 4 个方面: 选项按钮布局可扩展 选项按钮样式可扩展 选中样式可扩展 选择模式可扩展 扩展布局 原生单选按钮通过RadioButton+ RadioGroup实现,他们在布局上必须是父子关系...,而RadioGroup继承自LinearLayout,遂单选按钮只能是横向或纵向铺开,这限制单选按钮布局多样性,比如下面这种三角布局就难以用原生控件实现: selector.gif 为了突破这个限制...,单选按钮不再隶属于一个父控件,它们各自独立,可以在布局文件任意排列,图中 Activity 布局文件如下(伪码): <androidx.constraintlayout.widget.ConstraintLayout...单选可以理解为:点击按钮,选中当前并取消选中之前。 多选可以理解为:点击按钮无条件地反转当前选中状态。...点击创建组队,希望在selectChangeListener拿到每个选项 ID。那如何为Selector绑定数据? 当然可以通过继承,在Selector子类添加一个具体业务数据类型来实现。

5.9K00

项目需求讨论-Android 自定义Dialog实现步骤及封装

我就按照实际项目中,我开发步骤来说明。 如何生成这种自定义对话框 实际开发,我看到了第一个效果图中对话框,于是我马上大手一挥,自定义了一个类ErrorDialog,继承了Dialog。...所以我们需要添加setCanceledOnTouchOutside(false); 自定义布局上面的按钮点击事件添加很简单,因为上面已经拿到了自定义布局view对象。...比如我们上面的自定义布局有个按钮,我们点击按钮让对话框消失。...不过最多应该还是调用heightDimenRes()方法。因为一般我们在写自定义layout布局时候,height和width数值肯定是去dimen.xml获取。...我们什么时候需求变了,说这个对话框大小要进行更改,我们不需要更改代码,只需要在demen.xml中将数值修改即可。

1.4K31

项目需求讨论 - Android 自定义 Dialog 实现步骤及封装

都是我在做具体项目中所要求实现: 1.输入有误时弹出对话框 2.选择角色登录对话框 这里倒不是说自定义Dialog教程,因为自定义Dialog大家基本都会。...我就按照实际项目中,我开发步骤来说明。 如何生成这种自定义对话框 实际开发,我看到了第一个效果图中对话框,于是我马上大手一挥,自定义了一个类ErrorDialog,继承了Dialog。...所以我们需要添加setCanceledOnTouchOutside(false); 自定义布局上面的按钮点击事件添加很简单,因为上面已经拿到了自定义布局view对象。...比如我们上面的自定义布局有个按钮,我们点击按钮让对话框消失。...我们什么时候需求变了,说这个对话框大小要进行更改,我们不需要更改代码,只需要在demen.xml中将数值修改即可。

42010

Kotlin成了Google亲儿子,现在赶紧来学学

那么,我们该如何在Android应用这门新语言呢?今天这篇文章带你学习使用Kotlin开发Android应用,并对比我们传统语言Java,让你真真切切感受到他美和优雅。...user就是我们布局文件声明id,.text就想当与setText()给,在Kotlin语言中,我们看不到了像Javaset/get方法了。...上面的代码是不是很简单易懂,当然,默认控件并不能满足我们需求,例如我们会更改字体颜色及大小,会设置宽度和高度,会设置margin,padding值,那么该如何实行呢,当然也很简单,因为它逻辑和xml.../main/res/layout/activity_login.xml,那么接下来来只看Anko在Kotlin代码实现这个布局。...在上面我们给登录按钮设置一个打开MainActivity事件。startActivity是我们要跳转Activity,如果给打开界面传递参数,直接写在()

1.4K40

Android仿QQ在状态栏显示登录状态效果

将状态栏下拉可以看到状态详细信息(如图) ? 单击”更改登录状态”按钮,将显示通知列表。单击”退出”按钮,可以删除该通知。...编写用于布局列表项内容XML布局文件items.xml,在该文件,采用水平线形布局管理器,并在该布局管理器添加ImageView组件和一个TextView组件,分别用于显示列表项图标和文字。..._1); //让布局第一行显示 ((TableRow)findViewById(R.id.tableRow1)).setVisibility(View.VISIBLE); //让布局第二行显示...((TableRow)findViewById(R.id.tableRow2)).setVisibility(View.VISIBLE); //改变"更改登录状态"按钮上显示文字 ((Button...((TableRow)findViewById(R.id.tableRow1)).setVisibility(View.INVISIBLE); //让布局第二行不显示 ((TableRow)

1.2K20
领券