【Kotlin】View内のコンポーネントの取得方法

Javaっぽく取得する

データバインディングというらしい?

1
2
3
4
5
6
7
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

// コンポーネントに設定したID(textView)からTextViewを取得する
val textView = findViewById(R.id.textView) as TextView
}

Kotlinっぽく取得する(Kotlin Android Extensions使用)

Kotlin Android Extensions

Kotlinが公式で提供している、Androidアプリ開発をサポートしてくれる拡張機能
https://archive-blog.yagi2.dev/2017/10/18/good-bye-findviewbyid.html

1
2
3
4
5
6
7
8
9
10
11
// Inportする必要がある
// <layout>には取得したいLayoutXMLの名前を指定
import kotlinx.android.synthetic.main.<layout>.*

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

// 後はViewないで指定した、コンポーネントのIDから呼び出せる
textView.text = "テストだよ"
}