별의 공부 블로그 🧑🏻‍💻
728x90
728x170

# 뷰 바인딩(View Binding)

  • 안드로이드에서 UI 를 화면에 나타낼 때 레이아웃 파일인 xml 파일에 UI 의 요소를 태그 표기법으로 작성함.
  • xml 파일을 코드에서 사용하려면 뷰(View) 로 불리는 UI 요소의 id를 코드에서 지정해야 함.
    • 이 작업을 뷰의 바인딩(View Binding) 이라고 함.
  • 뷰의 바인딩을 이용하려면 코틀린 안드로이드 확장이 build.gradle 파일에 지정되어야 함.
    • 모듈 단위의 build.gradle(.app) 파일에 다음 플러그인이 명시되어 있는지 확인함.
 apply plugin: 'kotlin-android-extensions'

 

# 합성 프로퍼티 사용하기

  • 코틀린 확장 기능을 이용해 다음과 같이 합성 프로퍼티(Synthetic Property) 를 사용하여 UI의 요소를 사용할 수 있음.

▶ xml 리소스의 이름 부여하기 : activity_main.xml

1
2
3
4
5
<TextView
    android:id="@+id/tv_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!" />

 

합성 프로퍼티로 직접 접근하기 : MainActivity.kt

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import kotlinx.android.synthetic.main.activity_main.*     // 추가

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

        // val tvTitle = findViewById<TextView>(R.id.tv_title)
        // tvTitle.text = "Hello Kotlin!"

        // 합성 프로퍼티의 사용
        tv_title.text = "Hello Kotlin! again!~"
    }
}

 

  • Android Studio 4.1 부터 kotlin-android-extensions 플러그인이 빠졌기 때문에 다음과 같이 플러그인을 추가해서 사용해야 함.
    • 해결 방법
      • build.gradle(.app)에 다음의 내용을 추가함.
      • 상단의 Sync Now 클릭kotlinx.android.synthetic.main.activity_main.*를 불러올 수 없는 경우
 plugins { ... id 'kotlin-android-extensions' }

 

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖