绑定控件的两种方式
1.类似java
lateinit var button1 : Button
button1 = findViewById(R.id.button1)
lateinit关键字:延迟定义变量
2.直接使用id
app下的 build.gradle 中添加
apply plugin: 'kotlin-android-extensions'
在activity中引入
import kotlinx.android.synthetic.main.activity_test_kt.*
activity_test_kt.* 文件代表当前页面
点击事件的3种使用方式
1.匿名内部类
id.setOnClickListener{ }
2.实现全局OnClickListener接口
与java类似,不过不需要implement关键字,打个,就行。
?. 还有 !!. 是Kotlin提供的检测空指针的方法。
class MainActivity : BaseActivity() ,View.OnClickListener {//实现接口
override fun onCreate(savedInstanceState:Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
id.setOnClickListener(this)//设置点击事件
}
override fun onClick(v:View?) {//具体实现方法
when(v ?.id){
R.id.id -> //执行方法
} } }
记录一个智障问题,我用第二种方法实现View.OnClickListener接口失效,良久才发现是没有为这个id设置点击事件
3.xml文件指定
xml中的代码
<Button
android:id="@+id/click"
android:layout_width="50dp"
android:layout_height="50dp"
android:onClick="click"
android:text="点击" />
activity中代码
fun click(v:View?) {
when(v ?.id){
R.id.id -> //执行方法
} }
万事开头难