AndroidAndroid开发Android开发

Kotlin学习加载豆瓣电影列表

2018-09-29  本文已影响21人  Lazy1
class DoubanRetrofit {
     fun getData( ca:RetrofitCallBack<NowSHowMove>) {
        val retrofit: Retrofit = Retrofit.Builder()
                .baseUrl("http://api.douban.com/v2/movie/")
                .addConverterFactory(GsonConverterFactory.create())
                .build()
        val ipService = retrofit.create(DouBanApi::class.java)

        ipService.getNowSHowingMove().enqueue(object:Callback<NowSHowMove>{
            override fun onResponse(call: Call<NowSHowMove>?, response: Response<NowSHowMove>?) {
                if (response != null) {
                    ca?.succes(response)
                };

            }
            override fun onFailure(call: Call<NowSHowMove>?,         t: Throwable?) {

            }

        })

    }

}

这里的需要注意的地方,因为ktjava是可以互向调用的所以,方便很多,网络库就可以继续使用okhttp,这里序号注意的是回调解析的对象response不能直接获取属性值,需要response.body()才能得到NowSHowMove我们封装的列表数据

 class RecyclerHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        fun setData(entriesItem: EntriesItem) {
            itemView.tv.text=entriesItem.title;
            itemView.tv_show_time.text="上映时间: "+entriesItem.pubdate;
            itemView.tv_rating.text="评分: "+entriesItem.rating;
            Glide.with(itemView.context).load(entriesItem.images.large!!).into(itemView.iv);
        }
    }

class NowShowMoveAdapter(private val mNowSHowMove: NowSHowMove) : RecyclerView.Adapter<NowShowMoveAdapter.RecyclerHolder>() {


    override fun onCreateViewHolder(parent: ViewGroup, postion: Int): RecyclerHolder {
        val view = LayoutInflater.from(App.instance).inflate(R.layout.item_now_show_move, parent, false)
        return RecyclerHolder(view);
    }

    override fun getItemCount(): Int {
        return mNowSHowMove.entries!!.size;
    }

    override fun onBindViewHolder(vh: RecyclerHolder, postion: Int) {
        vh.setData(mNowSHowMove.entries!![postion]);
    }

    class RecyclerHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        fun setData(entriesItem: EntriesItem) {
            itemView.tv.text=entriesItem.title;
            itemView.tv_show_time.text="上映时间: "+entriesItem.pubdate;
            itemView.tv_rating.text="评分: "+entriesItem.rating;
            Glide.with(itemView.context).load(entriesItem.images.large!!).into(itemView.iv);
        }
    }


}
上一篇 下一篇

猜你喜欢

热点阅读