Android学习笔记08

retrofit
kotlin可以使用retrofit结合coroutines去实现取得api的方法,那因为我是使用mvvm架构,所以我会把rretrofit而外写成一个object然後在viewmodel中实作

object GoRetrofit{
    private val retrofit: Retrofit by lazy{
        Retrofit.Builder()
            .baseUrl("https://jsonplaceholder.typicode.com")
            .addConverterFactory(GsonConverterFactory.create())
            .build()
    }

    val api: API by lazy {
        retrofit.create(API::class.java)
    }

viewmodel

fun coroutine(){
        myScope.launch(Dispatchers.Main){
//            progressBar.visibility = View.VISIBLE
            retrofit()
//            progressBar.visibility = View.GONE
        }
    }

    private suspend fun retrofit() = withContext(Dispatchers.IO){
        val response = GoRetrofit.api.getAPI()
        if (response.isSuccessful) {
            Log.i("RETROFIT TEST", response.body().toString())
            data.postValue(response.body() as ArrayList<Post>)
        }
    }

当然也需要一个interface来response资料

interface API {
    @GET("/posts")
    suspend fun getAPI(): Response<List<Post>>
}

这样就可以简单的使用retrofit了


<<:  全端入门Day17_前端程序撰写之F12

>>:  1. 新Leader不该事必躬亲

企划实现(26)

在firebase制作登入系统 可以使用myRef.child("member"...

Day12 Docker File

昨天已经用PostgreSQL做了范例,今天要轮到PHP当主角了,从DockerHub下载下来最原始...

Day 07:我今天想不到标题之整合 tmux 和 zsh

我把从第一天到现在每天的 Home 目录都放上 GitHub 了,README.md 里面有说明 ...

[Day-15] R语言 - 分群应用(一) 补值前处理 ( Fill.NA with Clustering in R.Studio )

您的订阅是我制作影片的动力 订阅点这里~ 影片程序码 ## 应用一: 分群补数值 #### libr...

DAY24 - 我的网站要分析!网站分析工具的选择和态度(2)

思考了目标,我们可以开始了解网站分析工具。网站工具其实有好多种,大家最常见的GA、还有其他可能像Ho...