在Android Studio中使用Kotlin
在Android Studio中使用Kotlin
对Kotlin学习想要深入的可以看以下的文章,我也在学习中,多多交流沟通。 Kotlin学习日志(一)TextView、Button、Toast的使用 Kotlin学习日志(二)数据类型 Kotlin学习日志(三)控制语句 Kotlin学习日志(四)函数 Kotlin学习日志(五)类与对象
首先要说明为什么要学习Kotlin,因为以后可能Java将会闭源,安卓团队在谷歌 I/O 2017 大会上宣布 Kotlin 成为官方头等支持语言。而之后Android Studio版本的首先语言也都是Kotlin而不是Java,另一点也是亲身经历,就是现在出去面试Andorid开发,面试官都会问你知不知道Kotlin?多久能掌握?。这是我亲生经历的,所以重要性就不必多说了,类似于华为的鸿蒙系统一样,Kotlin也将是如同备胎转正一样,下面进入正题。
1.在Android Studio上面创建一个Kotlin语言为主的项目 如下图所示创建项目
创建完成之后打开MainActivity,你就能看到不一样的变化,代码如下所示
package com.example.kotlintest
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
跟之前用Java为主语言的MainActivity还是有一些区别的,但是也能看到眼熟的就是
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
相信不用介绍了,(还有一个要注意的是在Kotlin里面句尾可以不用加分号,这个在Java里面是不行的)现在我们打开activity_main.xml文件,在里面放一个TextView并且给一个ID 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv_tip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
然后回到MainActivity,这个时候按Java的逻辑来的话就要先实例化控件,再给控件赋值,然后页面渲染出来,相信都知道,那么用Kotlin的话要怎么实例化控件呢?
先导入一个包
import kotlinx.android.synthetic.main.activity_main.*
然后复制你的控件id 粘贴到onCreate方法下面 如果你不喜欢手动复制包导入的方式可以先将控件id复制到onCreate方法下面,然后右键点击这个id 按Alt+Enter导入import,就会自动添加上面的哪个包了,然后我们给这个文本赋值,我这里默认值是Hello World,(PS:不管学习什么新的语言,Hello World,都是要第一个尝试的,),我要改变它的值, 代码如下:
tv_tip.text = "Hello Money!"
这个语法跟Java就很不一样了。 我们看看这个text的方法
然后我们运行一下,在手机上查看
多么朴实无华的页面,别和我谈什么狗血爱情故事,我现在只想搞钱。 OK,就先到这里吧,产品又改需求了,我得去实现功能了。
- mysql下mysqladmin日常管理命令总结
- Ubuntu下SVN安装和配置
- mysql表名忽略大小写问题记录
- 当wcf遇到JSON ?
- 从MapX到MapXtreme2004[2]-图层操作
- Nginx+keepalived双机热备(主主模式)
- 用正则表达式完成简单公式的替换计算
- Linux下误删除后的恢复操作(ext3/ext4)
- 部署Linux下的man慢查询中文帮助手册环境
- 想修改CSS
- linux下sendmail邮件系统安装操作记录
- 定时备份脚本分享(网站数据和数据库数据)
- 大型分布式服务器架构原理解析
- silverlight中用代码动态控制Storyboard(动画)属性的三种方法
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Git同时上传到github和码云(国内知名的男性交友网站)
- 读源码——Guava-Cache
- LeetCode 94 | 构造出所有二叉搜索树
- 每日一题 | 最大考试分数问题
- 计算广告——收入分解
- 浅谈mybatis中的占位符
- Python | 详解Python中的协程,为什么说它的底层是生成器?
- 初识Mybatis中的动态sql
- Raw use of parameterized class 'Future'
- javaweb遇到的报错问题以及解决方案(持续更新)
- Spark Java UDAF 输入struct嵌套结构
- 深入理解Java内存模型
- Mybatis高级查询(一):resultMap与resultType
- JDK错误用法—TimSort
- Mybatis高级查询(三):分页查询