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 |
Tags
- JavaScript
- Express
- GIT
- table
- es6
- Sqoop
- Java
- vaadin
- window
- mapreduce
- Eclipse
- MSSQL
- NPM
- SPC
- Android
- 공정능력
- 보조정렬
- SQL
- mybatis
- xPlatform
- Spring
- react
- plugin
- Python
- SSL
- tomcat
- Kotlin
- hadoop
- R
- IntelliJ
Archives
- Today
- Total
DBILITY
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 > kotlin' 카테고리의 다른 글
android retrofit2 (0) | 2024.04.01 |
---|---|
android room database (0) | 2024.03.29 |
android migration kapt to ksp (0) | 2024.03.29 |
안드로이드 SQLiteOpenHelper 구현 (0) | 2024.03.28 |
안드로이드 internal directory file read ,write (0) | 2024.03.26 |
Comments