Android Application
    
        
            Kotlin  뷰 바인딩(View Binding)         
     
    
        
        작성자 임베디드코리아  
        작성일 23-09-24 03:58 
        조회4,000회 
        댓글0건 
     
    
        
    
    
    
         
    
    
    
    
    
    
    
        
        
        
        ■ 파인드 뷰(findViewByld)
 - 안드로이드 리소스를 관리하는 R 클래스를 통해 View를 찾는다.
 -  자동으로 형변환을 해주는 기능이 없어서 직접 형변환을 해주어야한다.
 - 연결된 Layout에 존재하지 않은 View여도 앱을 실행하기 전까지 오류를 발생시킨다.
 - 안드로이드 초기부터 사용되었으며 별다른 설정없이 사용 가능하다.
 
 ■ 데이터 바인딩(DataBinding)
 - XML 파일과 데이터를 직접 결합하는 방법이다.
 - 디자인 패턴과 결합해서 사용한다. 
 
 ------------------------------------------------------------------------------------
       activity_main.xml
 -------------------------------------------------------------------------------------
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     tools:context=".MainActivity">
 
     <TextView
         android:id="@+id/name"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Name"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.180"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintVertical_bias="0.109" />
 
     <TextView
         android:id="@+id/phone"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="phone"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.180"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintVertical_bias="0.206" />
 
     <TextView
         android:id="@+id/address"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Address"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.180"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintVertical_bias="0.327" />
 
 </androidx.constraintlayout.widget.ConstraintLayout>
 
 ------------------------------------------------------------------------------------
     MainActivity.kt
 ------------------------------------------------------------------------------------
 private lateinit var binding: ActivityMainBinding
 
 class MainActivity : AppCompatActivity() {
         override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         //setContentView(R.layout.activity_main)
 
         binding = ActivityMainBinding.inflate(layoutInflater)
         setContentView(binding.root)
 
         binding.name.text = "고소미"
         binding.phone.text = "010-5554-1234"
         binding.address.text = "사랑시 고백로 9090"
 
     }
 }
 
 ------------------------------------------------------------------------------------
     build.gradle(Module) : build.gradle.kts
 -------------------------------------------------------------------------------------
 / 안드로이드 스튜디오 4.0 이상
 android {
     ...
     buildFeatures {
         viewBinding = true
     }
 }
                
        
        
                
     
    
    
    
    
    
 
 
        
         
        
            
            	158-840 서울시 양천구 남부순환로 571(신월동, 영남타운 307호)  l  	대표: 박길성   ㅣ   Tel:02-2695-1114   ㅣ    Fax:02-2695-1113  
				Copyright © 2015 Embedded Korea. All Rights Reserved.