用Kotlin实现Android点击事件
来源:互联网 发布:台湾电信诈骗知乎 编辑:程序博客网 时间:2024/06/11 10:13
近期,Google宣布Kotlin成为了Android一级开发语言。于是就刚刚简单的研究了一下,查资料的时候发现现成的资料还是很少的,于是决定自己记录一下,方便以后查看,也供其他人一个参考。
在android中,点击事件大致分为三种写法:
1. 匿名内部类。
2. Activity实现全局OnClickListener接口。
3. 指定xml的onClick属性。
今天用Kotlin实现这三种方式实现点击事件
匿名内部类:这种方式最简单
这里不需要new OnClicklistener。override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) bt_click.setOnClickListener { Toast.makeText(this,"点击了",Toast.LENGTH_SHORT).show(); } }
全局实现OnClickListener接口:
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属性:
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) }
<Button android:id="@+id/bt_click" android:layout_width="match_parent" android:layout_height="50dp" android:onClick="click" android:text="点击" />
阅读全文
0 0
- 用Kotlin实现Android点击事件
- 用Kotlin写android点击事件
- 用Kotlin写android点击事件
- Kotlin 实现按钮点击跳转监听事件
- Kotlin开发之点击事件
- Android点击事件的实现
- Android点击事件的实现
- Android实现点击事件和长点击事件共存
- Kotlin初探:用Kotlin实现Android的ListView列表
- Android 中屏幕点击事件的实现
- Android 中屏幕点击事件的实现
- Android 中屏幕点击事件的实现
- Android 中屏幕点击事件的实现
- Android屏幕滑动、点击事件实现
- Android开发之实现多次点击事件
- Android中四种实现点击事件的方法
- android按钮事件点击的实现
- Android - TextView 实现部分文本点击事件
- 不起眼的 z-index 却能牵扯出这么大的学问
- 对象Object++、String
- “Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured
- Android4.4关于电阻屏调试和校准
- 算法时间复杂度
- 用Kotlin实现Android点击事件
- hibernate(九)注解方式的多表操作一对一和多对多
- (自定义MyBanner)小圆点设置,及viewpager图片轮播
- hdu 1875 畅通工程再续
- SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
- vscode emmet被覆盖,vue文件tab无法补全html标签
- HDU 6143 Killer Names【容斥定理】【排列组合】
- RxSwift样例二 NumbersViewController
- 关于Spring的69个面试问答——终极列表