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
- xPlatform
- Express
- react
- NPM
- table
- 공정능력
- maVen
- 정렬
- mybatis
- Java
- mapreduce
- window
- SQL
- Sqoop
- Spring
- es6
- R
- Python
- SPC
- 보조정렬
- JavaScript
- Android
- GIT
- Kotlin
- IntelliJ
- hadoop
- Eclipse
- tomcat
- vaadin
- MSSQL
Archives
- Today
- Total
DBILITY
독거 가능성 100% 노후에 라면값이라도 하게 센스를 발휘합시다!😅
Please click on the ad so that I can pay for ramen in my old age!
点击一下广告,让老后吃个泡面钱吧!
老後にラーメン代だけでもするように広告を一回クリックしてください。
android viewmodel 에서 constructor arguments 본문
반응형
AndroidViewModel을 상속받아 application을 사용하면 쉽다
ViewModel에서 context를 constructor argument로 받고 싶은 경우에는
ViewModelProvider.Factory를 상속받아 create를 구현하면 된다.
그런데 이렇게도 보통 사용을 할까?
class RoomViewModelFactory(private val helper: RoomMemoHelper) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return if (modelClass.isAssignableFrom(RoomViewModel::class.java)) {
RoomViewModel(helper) as T
} else {
throw IllegalArgumentException()
}
}
}
class RoomViewModel(private val helper: RoomMemoHelper) : ViewModel() {
private val dao: RoomMeoDao = helper.roomMeoDao()
.........
}
private lateinit var helper: RoomMemoHelper
private lateinit var viewModel: RoomViewModel
override fun onCreate(savedInstanceState: Bundle?) {
.....
helper = Room.databaseBuilder(this, RoomMemoHelper::class.java, "room_db")
.allowMainThreadQueries()//학습시만
.build()
viewModel = ViewModelProvider(this, RoomViewModelFactory(helper))[RoomViewModel::class.java]
}
반응형
'android' 카테고리의 다른 글
공휴일 api 제공 site (0) | 2024.04.01 |
---|---|
android room database (0) | 2024.03.29 |
android migration kapt to ksp (0) | 2024.03.29 |
android version catalog (0) | 2024.03.29 |
안드로이드 SQLiteOpenHelper 구현 (0) | 2024.03.28 |
Comments