提供一份封装好的MVVM+协程+retrofit+kotlin的代码
时间: 2023-01-31 13:06:55 浏览: 153
好的,这是一份简单的MVVM架构,使用协程和Retrofit的Kotlin代码示例:
首先,我们需要定义一个网络请求接口,使用Retrofit进行网络请求:
```kotlin
interface ApiService {
@GET("users/{userId}")
suspend fun getUser(@Path("userId") userId: String): User
}
```
然后,我们可以定义一个ViewModel类来管理数据和业务逻辑:
```kotlin
class UserViewModel(private val api: ApiService) : ViewModel() {
private val _user = MutableLiveData<User>()
val user: LiveData<User> get() = _user
fun loadUser(userId: String) {
viewModelScope.launch {
val user = api.getUser(userId)
_user.value = user
}
}
}
```
最后,我们可以在Activity或Fragment中使用ViewModel加载数据,并将数据绑定到界面上:
```kotlin
class MainActivity : AppCompatActivity() {
private val viewModel by viewModels<UserViewModel>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
viewModel.user.observe(this, Observer { user ->
// Update UI
})
viewModel.loadUser("123")
}
}
```
希望这个示例对你有帮助。如果你有其他疑问,请随时联系我。
阅读全文