inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)

ViewBinding 질문 있습니다.

해결된 질문

386

최승화

작성한 질문수 1

2

시간은 ViewBinding 8분 50초입니다

FragmentBinding 초기화하실 때

private var _binding : FragmentTestBinding? = null

private val binding get() = binding!!

이렇게 하셨는데요

 

액티비티에선

private lateinit var binding : ActivityMainBinding 으로 하셨습니다

저도 평소엔 이렇게 사용했는데 어떤 이유이신가요?

보통 흔히 사용하는 get함수 역할이라고 생각하면 될까요?

아니면 fragment에서 binding 초기화에러가 날 수 있기 때문인가요?

궁금합니당.

 

 

android kotlin jetpack

답변 2

1

개복치개발자

이 부분 아래의 링크를 참고해보시겠어요?
https://gift123.tistory.com/58

0

최승화

헉 감사합니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

ViewBinding을 사용할 때에는 Fragment와 Activity의 초기화 방법이 조금 다를 수 있어요.

Fragment에서 ViewBinding을 초기화하는 경우, nullable한 프로퍼티로 선언하고 초기화하지 않은 상태로 남겨둡니다. 이렇게 하면 Fragment가 만들어질 때마다 binding 객체를 실제로 초기화해주어야 합니다. 그래서 “_binding” 프로퍼티를 초기화하는 대신에 “private var _binding: FragmentTestBinding? = null”로 선언해서 나중에 초기화하는 방식을 사용하는 거에요. 그리고 “binding” 프로퍼티를 사용하려면 “binding!!“으로 접근해야 사용할 수 있게 됩니다. 이렇게 하면 binding이 null인 경우에는 NullPointerException이 발생하게 됩니다.

반면에 Activity에서는 ViewBinding을 lateinit 프로퍼티로 선언하여 초기화하는 방식을 많이 사용합니다. 이렇게 하면 Activity가 생성될 때 바로 binding 객체가 초기화되어 사용할 수 있게 됩니다. 이렇게 하면 null 체크나 널 포인트 예외 처리가 필요하지 않아 편리하게 사용할 수 있어요.

따라서 Fragment의 경우에는 nullable한 프로퍼티로 초기화되고, lateinit 프로퍼티보다는 프로퍼티에 접근할 때 null 체크나 예외 처리를 추가해야 하므로 주의해야 합니다.

만약 Fragment에서 binding 초기화시 에러가 발생한다면, 아마도 null 체크나 초기화 과정에서 어떤 문제가 있을 수 있습니다. 이 때에는 binding을 어떻게 초기화하고 있는지, 그리고 가능하면 에러 메세지를 확인해보는 것이 도움이 될 수 있어요.

해당 내용이 도움이 되셨기를 바라며, 더 궁금한 사항이 있으면 언제든지 물어보세요!

dataBinding 시 오류

0

66

2

Retrfit 에러

0

146

2

[Retrofit 간단한 예제 변경 + RecyclerView 추가] 에 databinding 추가해 보았습니다.

1

218

2

Navigation Data Transfer Safe Args 강의중에서

0

267

2

viewModel 초기화 관련 질문드려요

0

283

1

Fragment에서 ViewBinding과 DataBinding 초기화 차이가 궁금합니다.

0

282

1

최상단 변수 선언 관련하여 질문드려요

0

189

1

Retrofit + ViewModelScope + RecyclerView + Glide 강의중에서

0

321

2

Retrofit 간단한 예제 변경 강의중에서

0

301

2

LiveData 와 MutableLiveData 차이강의중에서

0

502

5

Activity/Fragment ViewModel 공유 10분35초경에 fragment 에 viewModel선언

0

221

1

안드로이드 테마 색상 오류

0

245

1

Map / SwitchMap - 2 강의 오류

0

386

1

에러

0

351

1

fragment 이동시 data 초기화

0

391

1

CoroutineScope 질문

0

371

1

뷰모델 질문

0

308

1

바인딩 때 xml

0

289

1

코루틴과 workmanager 순서 정하기의 차이점

0

521

1

ViewModel 값

0

296

1

Retrofit 질문입니다.

0

491

1

Activity / Fragment 의 ViewMode 질문있습니다.

0

317

1

2강 질문이씁니다.

0

283

1

Json 형식 데이터 모델 설계 질문드립니다 :)

2

1518

1