在AndroidViewModel中,如何使用接收到的应用属性?
In AndroidViewModel, how to use the received application property?
一个简单的AndroidViewModel
看起来像
class AppViewModel(application: Application) : AndroidViewModel(application) {...}
现在,要访问整个模型的 application
属性,我们需要向其添加 val
/var
(据我所知)。
class AppViewModel(val application: Application) : AndroidViewModel(application) {...}
然而这给出了错误,说
Accidental Override: The following declarations have the same JVM signature: getApplication()
我该如何解决这个问题?
您已经拥有访问权限,您可以在 class:
中使用此 属性
private val db = SomeDB.getInstance(application)
但不在 class 方法中,您必须手动传递它:
fun myViewModelMethod(application: Application = application, ...) {}
但是,您可以在视图模型中声明新的 属性:
class AppViewModel(application: Application) : AndroidViewModel(application) {
val app = application
...
}
并在里面的任何地方使用它。
一个简单的AndroidViewModel
看起来像
class AppViewModel(application: Application) : AndroidViewModel(application) {...}
现在,要访问整个模型的 application
属性,我们需要向其添加 val
/var
(据我所知)。
class AppViewModel(val application: Application) : AndroidViewModel(application) {...}
然而这给出了错误,说
Accidental Override: The following declarations have the same JVM signature: getApplication()
我该如何解决这个问题?
您已经拥有访问权限,您可以在 class:
中使用此 属性private val db = SomeDB.getInstance(application)
但不在 class 方法中,您必须手动传递它:
fun myViewModelMethod(application: Application = application, ...) {}
但是,您可以在视图模型中声明新的 属性:
class AppViewModel(application: Application) : AndroidViewModel(application) {
val app = application
...
}
并在里面的任何地方使用它。