Koltin23,kotlin静态代码块

本文介绍了如何在Android应用中使用Kotlin处理Retrofit网络请求响应,包括成功和失败的回调,展示了如何将数据解析并传递给适配器展示。同时,展示了HomeRvAdapter的实现,它根据不同的item类型加载数据。
摘要由CSDN通过智能技术生成

takeoutService.getHomeInfo().enqueue(object : Callback {

override fun onResponse(call: Call?, response: Response?) {

if (response == null) {

Log.d(“HomeFragmentPresenster”, “服务器没有成功返回=====”)

} else {

if (response.isSuccessful()) {

val responseInfo = response.body()

val nearbySellerList: List = responseInfo.nearbySellerList

val otherSellerList: List = responseInfo.otherSellerList

//有数据,成功页面

if (nearbySellerList.isNotEmpty() || otherSellerList.isNotEmpty()) {

homeFragment.onHomeSuccess(nearbySellerList, otherSellerList)

} else {

//无数据,异常页面

homeFragment.onHomeFailed()

}

}

}

}

override fun onFailure(call: Call?, t: Throwable?) {

//失败

Log.d(“HomeFragmentPresenster”, “onFailure=====” + t.toString())

}

})

}

}

HomeRvAdapter.kt负责adapter每一个条目的刷新,这里对于大list条目只是设置了一个TextView

package com.example.takeout.ui.adapter

import android.content.Context

import android.view.View

import android.view.ViewGroup

import android.widget.TextView

import androidx.recyclerview.widget.RecyclerView

import com.daimajia.slider.library.SliderLayout

import com.daimajia.slider.library.SliderTypes.TextSliderView

import com.example.takeout.R

import com.heima.takeout.model.beans.Seller

import org.jetbrains.anko.find

class HomeRvAdapter(val context: Context) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {

//定义常量

companion object {

val TYPE_TITLE = 0

val TYPE_SELLER = 1

}

var mDatas: ArrayList = ArrayList()

fun setData(data: ArrayList) {

this.mDatas = data

notifyDataSetChanged()

}

/**

  • 不同position对应不同类型

*/

override fun getItemViewType(position: Int): Int {

if (position == 0) {

return TYPE_TITLE

} else {

return TYPE_SELLER

}

}

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {

val viewType = getItemViewType(position)

when (viewType) {

TYPE_TITLE -> (holder as TitleHolder).bindData(“我是title----------------------------------------”)

TYPE_SELLER -> (holder as SellerHolder).bindData(mDatas[position - 1])

}

}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {

when (viewType) {

TYPE_TITLE -> return TitleHolder(View.inflate(context, R.layout.item_title, null))

TYPE_S

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值