一般电商项目会涉及到的订单管理模块,类似淘宝样式的订单
主要是讲一下订单页面的实现。当然实现的方法有很多,我知道的有两种方法:一种是采用listview嵌套listview的方式,这种方式需要重写listview中onMearsure方法;还有一种是采用接口回调的方式,这种方式主要对后台返回的数据有依赖;
今天主要说下第二种方法:
实现的思想:首先Tab下面的布局还是用一个listview实现,然后将listview中的item分为上中下三部分内容;
创建三个xml文件,分别实现三个布局;第一部分为店铺名称那一栏,第二部分为商品信息那一栏,第三部分为订单状态那一栏;
然后创建一个回调接口
代码如下
public interface OrderContent
{
public int getLayout();
public boolean isClickable();
public View getView(Context context, View convertView, LayoutInflater inflater);
}
利用接口回调分别实现三个布局
第一部分
public class ItemOrderTop implements OrderContent {
private Order order;
private OnceSendView2 shopImageView;
private List<Order_goods> list;
private ACache aCache;
public ItemOrderTop(Order order, List<Order_goods> list) {
this.order = order;
this.list = list;
}
@Override
public int getLayout() {
return R.layout.item_order_top;
}
@Override
public boolean isClickable() {
return true;
}
public Order order() {
return order;
}
@Override
public View getView(final Context context, View convertView, LayoutInflater inflater) {
aCache = ACache.get(context);
inflater = LayoutInflater.from(context);
convertView = inflater.inflate(getLayout(), null);
final GTextView orderId = (GTextView) convertView.findViewById(R.id.tv_order_num1);
GTextView orderstatus = (GTextView) convertView.findViewById(R.id.tv_order_state1);
orderId.setText("订单号码:" + order.getOrder_sn());
switch (order.getStatus().toString()) {
case "20":
orderstatus.setText("待发货");
break;
case "30":
orderstatus.setText("已发货");
break;
case "40":
orderstatus.setText("已收货待评价");
break;
default:
break;
}
return convertView;
}
}
中间部分
public class OrderIMiddle implements OrderContent {
private Order_goods order_goods;
private ImageLoader imageLoader;
private DisplayImageOptions options;
List<Order_goods> order_goodsList;
private String status;
public OrderIMiddle(Order_goods order_goods, String status) {
this.order_goods = order_goods;
order_goodsList = new ArrayList<Order_goods>();
order_goodsList.add(order_goods);
this.status = status;
imageLoader