Android Studio 프로젝트에서 View Binding을 사용하여 UI 컴포넌트에 접근하는 방법을 정리해보겠습니다.
첫 번째 방법 : build.gradle (Module : app)
파일에 아래 코드를 추가하여 View Binding을 활성화 합니다.
MainACtivity
에서 아래와 같이 코드 작업을 합니다.
build.gradle (Module : 프로젝트명)
파일에 동일한 방식으로 View Binding 을 활성화 합니다.android {
buildFeatures {
viewBinding true
}
}
MainACtivity
에서 아래와 같이 코드 작업을 합니다.import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.hongdroid.viewbindingexample.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private var mBinding: ActivityMainBinding? = null
private val binding get() = mBinding!!
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
override fun onDestroy() {
mBinding = null
super.onDestroy()
}
}
바인딩 객체 선언 : Private var mBinding : ActivityMainBinding? = null
을 사용하여 바인딩 객체를 전역 변수로 선언합니다.
바인딩 객체 초기화 : onCreate
메소드 내에서 mBinding = ActivityMainBinding.inflate(layoutInflater)
를 사용하여 바인딩 객체를 초기화하고 , setContentView(binding.root)
를 통해 뷰를 설정합니다.
바인딩 객체 정리 : onDestroy
메소드에서 mBinding = null
을 사용하여 바인딩 객체를 정리합니다.
Fragment
클래스 내에서 private var mBinding : FragmentMainBinding? = null
을 선언하고 , onCreateView
에서 mBinding = FragmentMainBinding.inflate(inflater , container , false)
를 사용하여 바인딩 객체를 초기화 합니다. onCreateView
에서 return binding.root
를 통해 뷰를 반환합니다.onDestroyView
에서 mBinding = null
을 사용하여 바인딩 객체를 정리합니다.import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.hongdroid.viewbindingexample.databinding.FragmentMainBinding
class MainFragment : Fragment() {
private var mBinding: FragmentMainBinding? = null
private val binding get() = mBinding!!
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
mBinding = FragmentMainBinding.inflate(inflater, container, false)
binding.tvMessage.setText(" 안녕 ")
return binding.root
}
override fun onDestroyView() {
mBinding = null
super.onDestroyView()
}
}
findViewById
방식보다 더 안정적이고 효율적으로 UI 컴포넌트에 접근할 수 있습니다. View Binding은 코드를 더 깔끔하게 만들고 , Null 안전성을 높이며 , 타입 안전성을 제공합니다.
오류 해결과정 잘 보았습니다!