用Kotlin实现Android点击事件的方法

用Kotlin实现Android点击事件的方法

http://www.jb51.net/article/115707.htm

作者:欧西里 字体:[增加 减小] 类型:转载 时间:2017-06-08 我要评论

本篇文章主要介绍了用Kotlin实现Android点击事件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
 

近期,Google宣布Kotlin成为了Android一级开发语言。于是就刚刚简单的研究了一下,查资料的时候发现现成的资料还是很少的,于是决定自己记录一下,方便以后查看,也供其他人一个参考。

在android中,点击事件大致分为三种写法:

1. 匿名内部类。

2. Activity实现全局OnClickListener接口。

3. 指定xml的onClick属性。

今天用Kotlin实现这三种方式实现点击事件

匿名内部类:这种方式最简单

1
2
3
4
5
6
7
override fun onCreate(savedInstanceState: Bundle?) {
   super.onCreate(savedInstanceState)
   setContentView(R.layout.activity_main)
   bt_click.setOnClickListener {
     Toast.makeText(this,"点击了",Toast.LENGTH_SHORT).show();
   }
 }

这里不需要new OnClicklistener。

全局实现OnClickListener接口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class MainActivity : AppCompatActivity(), View.OnClickListener {
 override fun onClick(v: View?) {
   when (v?.id) {
     R.id.bt_click ->
       Toast.makeText(this, "点击了", Toast.LENGTH_SHORT).show()
   }
 }
 
 override fun onCreate(savedInstanceState: Bundle?) {
   super.onCreate(savedInstanceState)
   setContentView(R.layout.activity_main)
   bt_click.setOnClickListener(this)
 }
}

这种方法与java的区别是没有implements关键字表示实现接口。

when就相当于java中的switch。

“:”符号改为了“->”。

指定onClick属性:

1
2
3
4
5
6
7
8
9
10
11
fun click(v: View?) {
   when (v?.id) {
     R.id.bt_click ->
       Toast.makeText(this, "点击了", Toast.LENGTH_SHORT).show()
   }
 }
 
 override fun onCreate(savedInstanceState: Bundle?) {
   super.onCreate(savedInstanceState)
   setContentView(R.layout.activity_main)
 }
1
2
3
4
5
6
<Button
   android:id="@+id/bt_click"
   android:layout_width="match_parent"
   android:layout_height="50dp"
   android:onClick="click"
   android:text="点击" />

以上就是这三种点击事件的写法。如果有语法不懂,关键字不知道什么意思可以去查一下官方文档。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

原文链接:http://www.jianshu.com/p/d057ac23eed0

如对本文有疑问,请提交到交流社区,广大热心网友会为你解答!! 点击进入社区

 

 

posted @ 2017-10-22 14:07  sky20080101  阅读(502)  评论(0)    收藏  举报