I
Size: a a a
I
R
VY
VY
VY
VY
VY
R
ЕГ
ЕГ
fun fetchContents(): LiveData<List<UserItem» {
val responseLiveData: MutableLiveData<List<UserItem» = MutableLiveData()
val usersRequest: Call<MyResponse> = usersApi.fetchContents()
usersRequest.enqueue(object : Callback<MyResponse> {
override fun onFailure(call: Call<MyResponse>, t: Throwable) {
Log.e(TAG, "Failde to fetch users", t)
t.printStackTrace()
}
override fun onResponse(call: Call<MyResponse>,
response: Response<MyResponse>) {
val myResponse: MyResponse? = response.body()
val userResponse: UserResponse? = myResponse?.users
val userItems: List<UserItem> = userResponse?.userItems
?: mutableListOf()
responseLiveData.value = userItems
}
})
return responseLiveData
}
ЕГ
class MyResponse(var users: UserResponse)
class UserResponse(@SerializedName("data") var userItems: List<UserItem>)
data class UserItem(
@SerializedName("id") var id: Int,
@SerializedName("avatar") var urlImage: String,
@SerializedName("first_name") var firstName: String,
@SerializedName("last_name") var lastName: String,
@SerializedName("email") var email: String
){}
ЕГ
interface UsersApi {
@GET("users" + "&format=json")
fun fetchContents(): Call<MyResponse>
}
KX
ЕГ
init {
val retrofit: Retrofit = Retrofit.Builder()
.baseUrl("https://reqres.in/api/")
.addConverterFactory(GsonConverterFactory.create())
.build()
usersApi = retrofit.create(UsersApi::class.java)
}
ЕГ
KX
ЕГ
ЕГ