Kotlin学习笔记(一):初见Kotlin

随着谷歌提出Kotlin语言来进行Android开发,自己的心也逐渐躁动起来。


于是赶紧打开Android Studio,由于是3.0,所以直接可以使用Kotlin。

那么作为一个Android开发者,第一步就是创建HelloWorld程序:

1.直接在MainActivity中使用Ctrl+Alt+Shift+K,将代码转换为Kotlin形式


class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

    }
}


由上可见,类与类之间的继承关系只需要一个“:”表示,函数用fun标识,java里的@Override直接写在了函数之前。


2.按照Android的开发思路,下一步我要写一个TextView来显示“HelloWorld”,那么在Kotlin里该如何findviewbyId呢?

apply plugin: 'kotlin-android-extensions'

只需要在app的gradle文件中添加这行。

xml文件:

  <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="Hello World!" />

MainActivity.kt:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        tvName.text = "Hello Kotlin!"

    }
}

这样就大功告成了!不需要findviewbyid,可以直接在kt文件中调用xml文件的id,连变量的定义都省去了,是不是很方便?


3.稍复杂又常见的需求,使用ListView展示数据:

看完了HelloWorld的展示,那么我们要来看一下在开发中,经常遇到的情况(列表展示)。

ListView可以和之前的TextView一样,直接用xml文件中的id得到实例,那么现在我们来创建一个Adapter:

在Kotlin中,var用来代表可变变量,val用来代表不可变变量(常量,final),

所以:

 val adapter = ArrayAdapter(
                this,
                android.R.layout.simple_list_item_1,
                arrayOf("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"));

我们得到了一个简单的adapter。你会发现我们最常见的new没有了。原来Kotlin语法中,创建新的对象,只需要直接写出他的构造方法,不需要new操作符,这样看起来简洁很多。

并且在ArrayAdapter的最后一个参数,java中的写法是一个String数组(new String[]),而在Kotlin中,arrayOf即可替代该写法。

那么该如何将这个adapter设置给ListView呢?

lvMain.adapter = adapter;
lvMain.setOnItemClickListener { adapterView, view, position, l ->
    Toast.makeText(this, "$position", Toast.LENGTH_SHORT).show();
    Log.i("Main","$position");
}

由上可见是用赋值的形式。在写这里代码的时候,我发现ListView没有setAdapter的方法了,取而代之的是可以直接获取ListView的Adapter引用,用来赋值。


而监听器的写法,如果熟悉Lambda表达式的朋友一定很熟悉,是通过推算来代替了匿名内部类。

而显示和打印的字符串,用了$position,而不是java的String.valueOf(position)或者position+""。

$符号其实就是取得后面引用的值。

看到这里,是不是对Kotlin有了一个初步了解呢?你会发现Kotlin很简单,代码简洁性也很高,相比java,Kotlin的代码风格更符合人的思维。


那么最后,总结一下:

1.Kotlin是弱类型语言,变量用var表示,常量用val表示

2.依赖插件,可以直接用xml的控件Id来获取控件的引用

3.Kotlin中的继承关系,用":"来表示,前者继承后者,等同于Java中的extends

4.Kotlin中的函数,用fun来表示

5.Kotlin中如果想要创建一个新的对象,直接调用类的构造方法,不需要new操作符

6.Kotlin中的设置监听方法,与lambda表达式相似,无需匿名内部类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值