android - android - kotlin - mvvm - 将数据发布到网络服务
问题描述
我想将一些数据发布到网络服务并得到结果。这是我的代码:
fab.setOnClickListener {
viewModel.newBimeGozar(name)
.observe(this@BimeGozarAct, Observer {
dialogbimegozarNew?.hidePg()
})
}
这是我的视图模型:
class BimeNewViewModel:ViewModel() {
private val repository=BimeNewRepository()
fun newBimeGozar(name: String): MutableLiveData<StatModel> {
return repository.newBimeGozar(name)
}
这是我的存储库:
fun newBimeShode(
name: String
): MutableLiveData<StatModel> {
scope.launch {
val request = api.newBimeShode(name)
withContext(Dispatchers.Main) {
try {
val response = request.await()
regBimeshodeLiveData.value = response
} catch (e: HttpException) {
Log.v("this", e.message);
} catch (e: Throwable) {
Log.v("this", e.message);
}
}
}
return regBimeshodeLiveData;
}
它工作正常,但有一个问题。我认为观察者继续运行,如果结果的答案是错误并且用户再次按下 fab 按钮,它会创建一个新的观察者,然后返回两个值,第一个值是第一次运行,第二个值是第二次运行
我怎样才能解决这个问题 ?提交表格的正确方法是什么?
解决方案
推荐阅读
- c# - 如何扩展 IWebElement 接口以添加新方法
- python - Pandas:使用 .loc 迭代地创建(和填充)列
- c# - 与 SQL Server 建立连接时发生网络相关或特定于实例的错误
- android - 如何从 Android Studio 为特定版本的 AOSP 开发应用程序?
- python - Selenium:获取特定班级的孩子
- java - Android:listView 和 getView-Method 的问题
- python-2.7 - 如何在python中自动将今天的日期作为整数获取
- algorithm - 为什么从范围树查询中获得的子树的数量是 O(log(n))?
- kotlin - 使用 Kotlin 按字母对数组进行排序
- javascript - Javascript - concat() 的作用类似于 push()