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 】中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…