Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 안드로이드스튜디오
- 안드로이드
- 코틀린
- Dialog
- Imageview
- button
- 밑줄
- RealtimeDB
- androidstudio
- textview
- lifecyclescope
- firebasefunctions
- firebase
- 랜덤ID
- ViewModel
- FRAGMENT
- BottomSheetDialog
- 팝업액티비티
- Android
- 뷰바인딩
- MaterialButton
- ButtonWithButton
- ROOM
- EditText
- Activity
- Kotlin
- ArrayList
- 안드로이드 스튜디오
- OutlinedButton
- nav_graph
Archives
- Today
- Total
안드로이드 앱 개발
Modern Android Development - ViewBinding(뷰바인딩) 하는 방법 (Java/Kotlin) - Activity/Fragment 22.05.23 버전 본문
Modern Android Development
Modern Android Development - ViewBinding(뷰바인딩) 하는 방법 (Java/Kotlin) - Activity/Fragment 22.05.23 버전
스텝바이스텝안드로이드 2021. 3. 28. 16:211. Java
step1. 먼저 build.gradle(:app)에
buildFeatures {
viewBinding = true
}
위와 같은 속성을 추가해준다.
step2.
액티비티 전역에 바인딩 변수를 선언해주고
ActivityMainBinding binding = null;
onCreate에서 연결해주면 된다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
}
2. Kotlin
step1은 동일하다.
step2
* 액티비티에서 사용하는 경우
변수 선언 및 onCreate에서 적용
private lateinit var binding: ResultProfileBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ResultProfileBinding.inflate(layoutInflater)
setContentView(binding.root)
}
위 경우 destroy시 자동으로 삭제 되는 듯 하다.
* 프래그먼트에서 사용하는 경우
변수 선언 및 적용
private var _binding: ResultProfileBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = ResultProfileBinding.inflate(inflater, container, false)
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
프래그먼트에서 사용하는 경우 꼭 onDestroyView에서 삭제를 해줘야 메모리 낭비를 줄일 수 있다고 함