forked from logzhan/NotesUESTC
62 lines
1.6 KiB
Markdown
62 lines
1.6 KiB
Markdown
|
# Kotlin 操作Layout控件
|
|||
|
|
|||
|
在Android Acitivity开发中,传统的java开发中findviewbyid。在kotlin中,有两种写法都可以操作layout控件。
|
|||
|
|
|||
|
## 一、传统写法(不推荐)
|
|||
|
|
|||
|
不推荐的原因主要是麻烦,满屏幕都是findViewById,非常的繁琐。
|
|||
|
|
|||
|
```kotlin
|
|||
|
package com.geek.motion
|
|||
|
|
|||
|
import androidx.appcompat.app.AppCompatActivity
|
|||
|
import android.os.Bundle
|
|||
|
import android.widget.TextView
|
|||
|
|
|||
|
class MainActivity : AppCompatActivity() {
|
|||
|
|
|||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|||
|
super.onCreate(savedInstanceState)
|
|||
|
setContentView(R.layout.activity_main)
|
|||
|
var textView = findViewById<TextView>(R.id.textView)
|
|||
|
textView.setText("Hello Kotlin")
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
## 二、省略写法(推荐)
|
|||
|
|
|||
|
下面采用的是省略写法,注意需要引入import kotlinx.android.synthetic.main.activity_main.*
|
|||
|
|
|||
|
```kotlin
|
|||
|
package com.geek.motion
|
|||
|
|
|||
|
import androidx.appcompat.app.AppCompatActivity
|
|||
|
import android.os.Bundle
|
|||
|
import kotlinx.android.synthetic.main.activity_main.*
|
|||
|
|
|||
|
class MainActivity : AppCompatActivity() {
|
|||
|
|
|||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|||
|
super.onCreate(savedInstanceState)
|
|||
|
setContentView(R.layout.activity_main)
|
|||
|
textView.text = "Hello kotlin"
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
如果在引用import kotlinx.android.synthetic.main.activity_main.*时报错,注意在build.gradle中,添加:**'kotlin-android-extensions'**
|
|||
|
|
|||
|
```shell
|
|||
|
plugins {
|
|||
|
id 'com.android.application'
|
|||
|
id 'org.jetbrains.kotlin.android'
|
|||
|
// 添加
|
|||
|
id 'kotlin-android-extensions'
|
|||
|
}
|
|||
|
android {
|
|||
|
compileSdk 32
|
|||
|
...
|
|||
|
```
|
|||
|
|