0%

记录Kotlin高级部分

findViewById扩展

Kotlin可以使用java一样的findViewById,但扩展了更方便的形式如下:

1
2
3
4
5
6
7
8
9
10
11
12
//导入指定布局文件中所有控件属性
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//直接使用控件id访问控件属性
textview.text = "ABC";
}
}

阅读全文 »

Kotlin学习笔记

函数简化

使用 = 连接返回值

1
2
fun area(width: Int, height: Int): Int = width * height
fun sayHi(name: String) = println("Hi " + name)
阅读全文 »

Kotlin学习笔记

数组和集合

数组

1
2
val strs: Array<String> = arrayOf("a", "b", "c")
val intArray = intArrayOf(1, 2, 3)

可以看到 Kotlin 中的数组是一个拥有泛型的类
将数组泛型化有什么好处呢?对数组的操作可以像集合一样功能更强大,由于泛型化,Kotlin 可以给数组增加很多有用的工具函数:

  • get() / set()
  • contains()
  • first()
  • find()
    这样数组的实用性就大大增加了。
阅读全文 »

Kotlin学习笔记

关键字

Constructor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//主构造器 primary constructor
//constructor 构造器移到了类名之后,类的属性 name 可以引用构造器中的参数name
class User constructor(name: String) {
var name: String = name

init {
this.name = name
}
}
//次构造器
class User {
val name: String
constructor(name: String) {
//没有 public
this.name = name
}
}
//如果类中有主构造器,那么其他的次构造器都需要通过 this 关键字调用主构造器
class User constructor(var name: String) {
constructor(name: String, id: Int) : this(name) {
}
constructor(name: String, id: Int, age: Int) : this(name, id) {
}
}

//通常情况下,主构造器中的 constructor 关键字可以省略:
class User(name: String) {
var name: String = name
}

//在构造器中直接声明属性
class User(var name: String) {
}
// 等价于:
class User(name: String) {
var name: String = name
}
阅读全文 »

SystemUI plugins机制介绍

插件是包含可以动态加载到SystemUI中的代码和资源的APK,插件提供了一种快速创建SystemUI功能的简便方法,通过创建插件来实现SysUI中已经定义的基本接口集,从而在运行时更改SystemUI的行为,由接口控制的代码可以更快的迭代。

阅读全文 »

Kotlin学习笔记

类和对象

1
2
3
4
5
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
...
}
}
  • 首先是类的可见性,Java 中的 public 在 Kotlin 中可以省略,Kotlin 的类默认是 public 的。
  • 类的继承的写法,Java 里用的是 extends,而在 Kotlin 里使用 :,但其实 : 不仅可以表示继承,还可以表示 Java 中的 implement
阅读全文 »

Hexo常用命令

1
2
3
4
5
6
7
8
hexo init [folder]  //新建一个网站。如果没有设置 folder ,Hexo 默认在目前的文件夹建立网站。
hexo server //启动服务器。默认情况下,访问网址为: http://localhost:4000/。
hexo g //生成html文件
hexo clean //清空生成文件
hexo new [layout] <title> //新建一篇文章。如果没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数代替。
//如果标题包含空格的话,请使用引号括起来。
hexo new "post title with whitespace"
hexo d //部署之前预先生成静态文件

Kotlin学习笔记

变量

变量的声明与赋值

kotlin 里声明一个变量的格式是这样的:

1
var v: View

注意以下几点:

  • 有一个 var 关键字
  • 变量名在前,类型在后
  • 中间是用冒号分隔的
  • 结尾没有分号(对,Kotlin 里面不需要分号)
阅读全文 »

Markdown常用格式记录便于查阅

标题

1
2
3
# 一级标题
## 二级标题
以此类推,注意#与文字间加空格
阅读全文 »