研究了两天的Kotlin语法,感觉和JavaScript有一些相似的地方,而且AndroidStudio又完美的支持的了它,毕竟一家公司出品嘛
今天开始记录一下Kotlin的语法使用,既然Google要把Kotlin作为第一开发语言,作为一名Android程序员,那还用说什么吗.......
初学者,分享学习心得,语法使用,有不对的地方,还请留言指正
在使用Kotlin之前先要集成环境,有的朋友认为AndroidStudio要3.0才能使用,并不是这样的,如果你的IDE是3.0的话就会少操作一点,不是3.0集成下配置也可以使用,目前3.0没有出正式版,不建议在开发项目的朋友使用,万一出问题不太好哈。
如果你还不会集成的话请看我的上一篇 配置Kotlin
配置好以后,这个时候你就可以 右键 New -> Kotlin Activity 步骤和以前创建Activity一样的,然后在生成文件的时候,代码就Kotlin式的!
创建的过程一样的,创建成功以后
package com.xinxin.kotlintest
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
}
}
我图省事就用Main了
这样基本就算成了,我们先做几个简单语法应用
一、TextVIew
在xml中添加一个textview,并为它指定id
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
那么在代码给它设置一些属性,比如常用的setText(),setTextSize()等
我们来做一个简单的对比
java的代码
TextView tv = (TextView) findViewById(R.id.tv);
tv.setText("你好");
tv.setTextSize(50);
Kotlin的代码
tv.text = "你好"
tv.textSize = 50f
不再需要什么findViewById了,直接在代码中输入xml的id就行,这个时候会提示你需要导包,注意不要导错了
先来看下运行的效果
其它的一些视图控件的用法其实都很类似,是使用的过程举一反三,一通百通哦
二、ImageView
<ImageView
android:id="@+id/icon"
android:layout_marginTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
为了和上边的textview拉开点距离,加了一个边距,没有其它意义
在输入id的时候提示也很友好,如果你没开代码提示,请自行百度
kotlin代码设置图片,一行搞定,我直接使用的launcher的图(这不是重点,哈哈)
icon.image = resources.getDrawable(R.mipmap.ic_launcher)
细心的同学不知道你有没有发现这个细节
就是这个其实是和 getResources() 一样的,有没有一种恍然大悟的赶脚,以此类推哦
其实就是这样的,大家在写的时候多看提示,多试就行了,大不了错了再换一个继续试,有点误人子弟了是吧!!!
三、Button
<Button
android:id="@+id/button"
android:text="button"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
button.onClick {
//写你的逻辑代码就行了
}
就是这样,是不是感觉和某种语言有点相似了,那就对了
四、Toast
toast("你好,我是按钮")
longToast("你好,我也是按钮")
这个弱提示是不是更......
那么我们可以把按钮和弱提示合一起,在点击按钮时提示一下
button.onClick {
//写你的逻辑代码就行了
toast("你好,我是按钮")
}
五、AlertDialog
alert {
yesButton { toast("确定") }
noButton { toast("取消") }
}.show()
这是一个弹框的提示,有两个按钮,标题和内容等怎么设置呢
alert {
title = "提示"
message = "你好你好你好"
yesButton { toast("确定") }
noButton { toast("取消") }
}.show()
看出来了吧,其实是把set的简略了。
大家有没有发现一个问题,都没";"分号结尾的,是的,不需要哦
下面我们把它写到按钮的点击事件里面去
button.onClick {
//写你的逻辑代码就行了
toast("你好,我是按钮")
alert {
title = "提示"
message = "你好你好你好"
yesButton { toast("确定") }
noButton { toast("取消") }
}.show()
}
在点击确定或取消键的时候,toast提示确定或取消
六、字符串的拼串
我们在开发中会有一些常见拼串使用需求,假设我两个EditText,输入账号密码,然后需要把用户输入的字符拿到拼串Toast一下
<EditText
android:id="@+id/edit1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/edit2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button2"
android:text="button"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
按钮点击Toast
第一个框输入123,第二个输入456,中间就再拼接三个===等号,看效果
button2.onClick {
toast("${edit1.text}===${edit2.text}")
}
为了使代码看起来更直观一点,截个图吧,
中间不需要+加号来拼接,应该可以看懂吧,就不再阐述了
有些同学可能想了如果输入的有空格这是去掉了还是没去掉呢,那看下边的这个图看看区别你就都懂了