티스토리 뷰
안드로이드/compose
[Android Studio]Jetpack Compose + viewModel + LiveData kotlin
eqrw105 2021. 11. 8. 13:00[Android Studio]Jetpack Compose + viewModel + LiveData kotlin
viewModel과 LiveData를 모르는 분들은 MVVM에 대한 이론과 이전 포스팅을 먼저 참고하시는 걸 추천드립니다.
https://devsmin.tistory.com/54/
build.gradle 종속 선언
implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
1. ViewModel Class 작성
class MainActivityViewModel: ViewModel() {
private val _text: MutableLiveData<String> = MutableLiveData()
val text: LiveData<String> get() = _text
fun updateText(t: String) {
_text.postValue(t)
}
}
2. ViewModel 초기화
class MainActivity : ComponentActivity() {
private lateinit var viewModel: MainActivityViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
viewModel = ViewModelProvider(this).get(MainActivityViewModel::class.java)
ComposeTheme {
Greeting()
}
}
}
}
3. 데이터 옵저빙
fun Greeting() {
val data by viewModel.text.observeAsState("")
Column{
Text(data)
Button(onClick = { viewModel.updateText(UUID.randomUUID().toString()) }) { }
}
}
버튼 클릭 시 텍스트가 변경되는걸 볼 수 있다.
'안드로이드 > compose' 카테고리의 다른 글
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 커밋 이메일 변경
- github mirror
- react native oss
- non-zero exit code detected
- 안드로이드 해시키
- Android Studio
- kakao api notworking
- 안드로이드 스튜디오 해시키
- next useEffect
- 깃허브에서 깃랩으로
- rn 오픈소스 라이센스
- react native 오픈소스 라이선스
- 라이브러리 라이센스
- 깃랩 잔디 옮기기
- 깃허브 잔디 옮기기
- 깃랩에서 깃허브로
- next.js useEffect
- 안드로이드 스튜디오
- kotlin
- react.js useEffect
- amplify next.js
- room error
- amplify build error
- 코틀린
- 카카오 해시키
- nextjs ssr deploy
- next.js ssr deploy
- rn oss
- gitlab mirror
- Build failed because of webpack errors
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함