상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - LiveData를 초기화하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
LiveData를 초기화하는 방법에는 몇 가지가 있으며, 주로 MutableLiveData 객체를 생성하고 초기 값을 설정하는 방식으로 이루어집니다. LiveData 자체는 불변(immutable) 자료형이기 때문에 값을 직접 설정할 수 없고, MutableLiveData를 통해 값을 설정하거나 변경합니다. 1. 기본 생성 시 초기값 설정하기 MutableLiveData를 생성하면서 생성자에 초기값을 넘겨줄 수 있습니다. 예를 들어 숫자 타입의 LiveData를 초기값 0으로 초기화하려면: ```kotlin val liveData = MutableLiveData<Int>(0) ``` 이렇게 하면 liveData는 0으로 초기화되며, 관찰자가 추가되었을 때 초기값이 전달됩니다. 2. 생성 후 setValue 또는 postValue로 초기값 설정하기 생성자에 값을 넘기지 않고, 객체를 생성한 다음에 값을 설정할 수도 있습니다. ```kotlin val liveData = MutableLiveData<String>() liveData.value = "초기값" // 메인 스레드에서 값을 설정 // 또는 liveData.postValue("초기값") // 백그라운드 스레드에서도 안전하게 값 설정 가능 ``` 이 방법은 생성자에 초기값을 넘길 수 없는 타입이거나, 나중에 초기값을 동적으로 지정하고자 할 때 유용합니다. 3. Lazy 초기화와 함께 사용하는 방법 LiveData를 오직 사용될 때 초기화하고 싶으면 Kotlin의 lazy delegate를 활용할 수 있습니다. ```kotlin val liveData by lazy { MutableLiveData<Int>().apply { value = 10 } } ``` 이 방법은 실제 liveData가 최초 접근될 때 초기화되면서 초기값을 갖게 됩니다. 4. ViewModel 안에서 초기화하는 패턴 보통 LiveData는 ViewModel 내부에서 정의하고 초기화합니다. 예를 들어: ```kotlin class MyViewModel : ViewModel() { private val _count = MutableLiveData<Int>(0) // 초기값 0 val count: LiveData<Int> = _count fun increment() { _count.value = (_count.value ?: 0) + 1 } } ``` 여기서 _count는 MutableLiveData로 초기화하면서 0을 설정했고, 외부에는 변경 불가능한 LiveData를 노출합니다. 요약 - `MutableLiveData<T>(초기값)` 생성자로 초기화하는 방법 - 생성 후 `.value = 초기값` 또는 `.postValue(초기값)`로 설정하는 방법 - lazy 또는 다른 <a href='https://sangseek.com/sangseeks/지연 초기화/ko'>지연 초기화</a> 방법으로 초기값 세팅 - 주로 ViewModel 내에서 private MutableLiveData로 초기화 후 LiveData로 외부 노출 LiveData는 불변성을 지키기 위해 직접 값 변경은 MutableLiveData를 통해 처리하며, 초기값이 중요한 경우는 생성 시에 넣거나 첫 값 설정을 명시적으로 해주는 것이 일반적입니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기