Kotlin之设置监听

Kotlin之设置监听,第1张

换了一种语言,几乎什么都是重新学,说好了kotlin跟Java很像呢?设置个监听就要炸了。。

TextView点击监听有两种方式,第一种是:

TextView.setOnClickListener {

//这里写实现的功能

}

比较方便了

下面是第二种:

TextView.setOnClickListener(object :OnClickListener{

override fun onClick(v: View?) {

//这里写实现的功能

}

})

这里就跟着Java一样了

TextView长按监听也两种方式,就是以上的两种方式,不算很难,就不粘贴了。

EditText点击和长按监听同TextView写法一样。下面写一个监听输入变化的方法,有两种,我主要用这一种继承TextWatcher【例如:class XXXActivity : BaseActivity(), TextWatcher】:

监听当前this,然后重写三个方法(输入后,输入前,输入文字产生变化)

EditText.addTextChangedListener(this)

    override fun afterTextChanged(s: Editable?) {

//输入后的监听

    }

    override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {

//输前后的监听

    }

    override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {

//输入文字产生变化的监听

    }

另一种写法,直接监听

EditText.addTextChangedListener(object : TextWatcher {

override fun afterTextChanged(s: Editable?) {//输入后的监听}

override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {//输入后的监听}

override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {//输入文字产生变化的监听}

})

最重要的,是button的监听(MD我连这个都不会。。。)网上查了一下,可以分为3种,使用匿名内部类,实现OnClickLinstener接口,或者制定xml的onclick属性。

匿名内部类是最简单的:

   bt_click.setOnClickListener {

Toast.makeText(this,"点击了",Toast.LENGTH_SHORT).show()

   }

就是这样,kotlin中内部类可以使用外面类的东西.

然后全局实现onclicklistener接口:

bt_click.setOnClickListener(this)

·····

override fun onClick(v: View?) {

   when (v?.id) {

     R.id.bt_click ->

Toast.makeText(this, "点击了", Toast.LENGTH_SHORT).show()

   }

 }

感觉这样比较整齐了一点,这种方法与java的区别是没有implements关键字表示实现接口。when就相当于java中的switch。“:”符号改为了“->”。也更简洁了。

指定onclick属性跟这个差不多:

fun click(v: View?) {

   when (v?.id) {

     R.id.bt_click ->

Toast.makeText(this, "点击了", Toast.LENGTH_SHORT).show()

   }

 }

 android:onClick="click"

关于toast,这里再总结一下:

Toast.makeText(this, “text”,Toast.SHORT).show()

show别忘了。

好吧,今天就这样。

 �=y9�Θ�C

方法如下:1. 手机下拉通知中心长按蓝牙开关进入蓝牙并打开开关。

?2. 长按蓝牙耳机开机键,直到提示灯闪烁进入“可配对模式”。

?3. 在手机蓝牙界面找到蓝牙耳机名称点击完成配对连接。

?

本文主要讲解如何在Android中使用kotlin语言,如果想了解更多关于kotlin的知识, 请查阅官方中文文档

1. var a = 5 or val a: Int = 5

2. val TAG = "com.myapplication.example"

override fun onCreate(savedInstanceState: Bundle?) {}

view instanceof Button to view is Button

class MainActivity : AppCompatActivity(){}

xxx.println("---size:"+list.size())

print("---size: ${list.size},first: ${list[0]}")

1.if(a >= 3 &&a<= b){...}

1.if(a in 3..b){...}

1.在 project ->build.gradle 添加

classpath "org.jetbrains.kotlin:kotlin-android-extensions:1.1.0"

2.在 app->build.gradle 添加

apply plugin: 'kotlin-android-extensions'

compile "org.jetbrains.kotlin:kotlin-stdlib:1.1.0"

首先是非空判断

这是普通的if else判断

现在采用全新而炫酷的表达方式:when


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11228126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存