无法将搜索数据从 ViewModel 获取到 Activity Kotlin
Can't get search data from ViewModel to Activity Kotlin
我正在尝试将我的数据从我的 ViewModel 获取到我的 MainActivity。
我知道我在我的 MainActivity
中所做的是非常错误的,但我似乎无法以将数据获取到 MainActivity 的方式对其进行配置。这只是一个简单的字符串。
ViewModel
class MovieSearchViewModel : ViewModel() {
var searchTerm = ""
fun getSearchTerm(query: String) {
searchTerm = query
}
}
MainActivity
open class MainActivity : AppCompatActivity() {
private val viewModel: MovieSearchViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
var searchTerm = viewModel.searchTerm
}
}
查看模型
您可以使用 LiveData 始终获取 Activity
中的最新数据
var searchTerm = MutableLiveData("")
fun setSearchTerm(query: String){
searchTerm.value = query
}
主要Activity
观察每次有数据变化时它总是运行
viewModel.searchTerm.observe(this){
Log.e("tag", it)
}
或
如果你想在不观察的情况下手动获取数据,你可以这样做
var data = viewModel.searchTerm.value
我正在尝试将我的数据从我的 ViewModel 获取到我的 MainActivity。
我知道我在我的 MainActivity
中所做的是非常错误的,但我似乎无法以将数据获取到 MainActivity 的方式对其进行配置。这只是一个简单的字符串。
ViewModel
class MovieSearchViewModel : ViewModel() {
var searchTerm = ""
fun getSearchTerm(query: String) {
searchTerm = query
}
}
MainActivity
open class MainActivity : AppCompatActivity() {
private val viewModel: MovieSearchViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
var searchTerm = viewModel.searchTerm
}
}
查看模型
您可以使用 LiveData 始终获取 Activity
中的最新数据var searchTerm = MutableLiveData("")
fun setSearchTerm(query: String){
searchTerm.value = query
}
主要Activity
观察每次有数据变化时它总是运行
viewModel.searchTerm.observe(this){
Log.e("tag", it)
}
或
如果你想在不观察的情况下手动获取数据,你可以这样做
var data = viewModel.searchTerm.value