綁定控件的兩種方式
1.類(lèi)似java
lateinit var button1 : Button
button1 = findViewById(R.id.button1)
lateinit關(guān)鍵字:延遲定義變量
2.直接使用id
app下的?build.gradle?中添加?
apply plugin: 'kotlin-android-extensions'
在activity中引入
import kotlinx.android.synthetic.main.activity_test_kt.*? ?
activity_test_kt.*?文件代表當(dāng)前頁(yè)面
點(diǎn)擊事件的3種使用方式
1.匿名內(nèi)部類(lèi)
id.setOnClickListener{ }
2.實(shí)現(xiàn)全局OnClickListener接口
與java類(lèi)似锨能,不過(guò)不需要implement關(guān)鍵字伤为,打個(gè)腌且,就行惋嚎。
?. 還有 !!. 是Kotlin提供的檢測(cè)空指針的方法。
class MainActivity : BaseActivity() ,View.OnClickListener {//實(shí)現(xiàn)接口
override fun onCreate(savedInstanceState:Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
id.setOnClickListener(this)//設(shè)置點(diǎn)擊事件
}
override fun onClick(v:View?) {//具體實(shí)現(xiàn)方法
when(v ?.id){
R.id.id -> //執(zhí)行方法
}? }? }
記錄一個(gè)智障問(wèn)題顶岸,我用第二種方法實(shí)現(xiàn)View.OnClickListener接口失效色难,良久才發(fā)現(xiàn)是沒(méi)有為這個(gè)id設(shè)置點(diǎn)擊事件
3.xml文件指定
xml中的代碼
<Button
? ? ? ? android:id="@+id/click"
? ? ? ? android:layout_width="50dp"
? ? ? ? android:layout_height="50dp"
? ? ? ? android:onClick="click"
? ? ? ? android:text="點(diǎn)擊" />
activity中代碼
fun click(v:View?) {
when(v ?.id){
R.id.id -> //執(zhí)行方法
}? }?
萬(wàn)事開(kāi)頭難