Koltin32,android网络开发技术答案

rvOrder.adapter = adapter

swipeLayout = orderView.find(R.id.srl_order)

swipeLayout.setOnRefreshListener(object : SwipeRefreshLayout.OnRefreshListener{

override fun onRefresh() {

//下拉后重新请求

val userId = TakeoutApp.sUser.id

if (-1 == userId) {

toast(“请先登录,再查看订单”)

} else {

orderPresenter.getOrderList(userId.toString())

}

}

})

return orderView

}

override fun onActivityCreated(savedInstanceState: Bundle?) {

super.onActivityCreated(savedInstanceState)

//访问服务器,获取所有订单数据

val userId = TakeoutApp.sUser.id

if (-1 == userId) {

toast(“请先登录,再查看订单”)

} else {

orderPresenter.getOrderList(userId.toString())

}

}

fun onOrderSuccess(orderList: List) {

//TODO:给adapter设置数据

adapter.setOrderData(orderList)

toast(“服务器onOrderSuccess”)

swipeLayout.isRefreshing = false

}

fun onOrderFailed() {

toast(“服务器onOrderFailed”)

swipeLayout.isRefreshing = false

}

}

OrderRvAdapter.kt界面优化

package com.example.takeout.ui.adapter

import android.content.Context

import android.content.Intent

import android.view.LayoutInflater

import android.view.View

import android.view.ViewGroup

import android.widget.TextView

import androidx.recyclerview.widget.RecyclerView

import com.example.takeout.R

import com.example.takeout.model.beans.Order

import com.example.takeout.utils.OrderObservable

import com.mob.wrappers.PaySDKWrapper

import org.jetbrains.anko.find

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

private var orderList: List = ArrayList()

fun setOrderData(orders: List) {

this.orderList = orders

notifyDataSetChanged()

}

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

// val itemView = View.inflate(context, R.layout.item_order_item, null)

//TODO:没有填充满,原因是recycleview的孩子,测量模式是UNSPECIFY

//通过返回值已经addview,如果attachToRoot使用true会再一次addView(),就会报错

val itemView = LayoutInflater.from(context).inflate(R.layout.item_order_item,parent, false)

return OrderItemHolder(itemView)

}

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

(holder as OrderItemHolder).bindData(orderList.get(position))

}

override fun getItemCount(): Int {

return orderList.size

}

inner class OrderItemHolder(item: View) : RecyclerView.ViewHolder(item) {

val tvSellerName: TextView

val tvOrderType: TextView

init {

//findviewbyId tv_order_item_seller_name tv_order_item_type

tvSellerName = item.find(R.id.tv_order_item_seller_name)

tvOrderType = item.find(R.id.tv_order_item_type) //订单状态

// item.setOnClickListener {

// val intent: Intent = Intent(context, OrderDetailActivity::class.java)

// intent.putExtra(“orderId”, order.id)

// intent.putExtra(“type”, order.type)

// context.startActivity(intent)

// }

}

fun bindData(order: Order) {

tvSellerName.text = order.seller?.name ?: “aaaa”

tvOrderType.text = order.type?.let { getOrderTypeInfo(it) }

}

}

private fun getOrderTypeInfo(type: String): String {

/**

  • 订单状态

  • 1 未支付 2 已提交订单 3 商家接单 4 配送中,等待送达 5已送达 6 取消的订单

*/

// public static final String ORDERTYPE_UNPAYMENT = “10”;

// public static final String ORDERTYPE_SUBMIT = “20”;

// public static final String ORDERTYPE_RECEIVEORDER = “30”;

// public static final String ORDERTYPE_DISTRIBUTION = “40”;

// public static final String ORDERTYPE_SERVED = “50”;

// public static final String ORDERTYPE_CANCELLEDORDER = “60”;

var typeInfo = “”

when (type) {

OrderObservable.ORDERTYPE_UNPAYMENT -> typeInfo = “未支付”

OrderObservable.ORDERTYPE_SUBMIT -> typeInfo = “已提交订单”

最后

在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。**

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
[外链图片转存中…(img-7YVlXcaW-1646143780603)]
本文在开源项目:【GitHub 】中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值