Android kotlin使用ViewModelFactory将动态参数/参数传递给ViewModel
为了传递ViewModel的其他参数,我们使用了ViewModelFactory。比如说Android kotlin使用ViewModelFactory将动态参数/参数传递给ViewModel,android,kotlin,viewmodel,Android,Kotlin,Viewmodel,为了传递ViewModel的其他参数,我们使用了ViewModelFactory。比如说 ExtraParamsViewModelFactory(this.requireActivity().application, "some string value") 但是创建ViewModel时,我无法动态更改参数 val myViewModel = ViewModelProvider(this, ExtraParamsViewModelFactory(this.requireActivity().
ExtraParamsViewModelFactory(this.requireActivity().application, "some string value")
但是创建ViewModel时,我无法动态更改参数
val myViewModel = ViewModelProvider(this, ExtraParamsViewModelFactory(this.requireActivity().application, "some string value")).get(SomeViewModel::class.java)
“某个字符串值”在片段/活动类中成为harcoded。在“某些字符串值”中,我需要传递一个始终与ViewModel不同的日期。在片段中,用户选择一个日期,单击按钮,并将该日期作为参数/参数传递给ViewModel。不适合此ViewModelFactory?无需在ViewModel构造函数中传递参数。您所需要的只是一个setter&warrper类,具体取决于您的使用 我想你的ViewModel会有这样的东西
data class CustomWrapper<T>(var value:T)
class VM : ViewModel(){
private val stringValue = CustomWrapper<String>("")
fun setNewStringValue(value:String){
stringValue.value = value
//TODO:: update stuff related to `stringValue`
}
}
谢谢这是一个很好的解决方案。
vm.setNewStringValue("new value")