写一个listview的adapter

本文介绍了一个用于图书管理应用的自定义ArrayAdapter——bookAdapter,它实现了图书信息的列表显示和状态区分。同时,详细阐述了book类的设计,包括图书的状态、客户信息、订单日期等属性,以及图书的比较逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.example.mgmt;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date;
import java.util.List;

import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.Calendar;

public class bookAdapter extends ArrayAdapter<book>
{
 private int resourceId;
 public bookAdapter(Context context, int textViewResourceId,
   List<book> objects) {
  super(context, textViewResourceId, objects);
  resourceId = textViewResourceId;
  Collections.sort(objects);  
  }
 
 @Override
 public View getView(int position, View convertView, ViewGroup parent)
 {
  
  book mbook = getItem(position);
  View view = null;
  ViewHolder viewHolder = null;
  if (convertView == null)
  {
   view = LayoutInflater.from(getContext()).inflate(resourceId, null);
   viewHolder = new ViewHolder();
   viewHolder.orderId = (TextView)view.findViewById(R.id.order_Id);
   viewHolder.bookImage = (ImageView) view.findViewById(R.id.book_image);
   viewHolder.bookCustomer = (TextView)view.findViewById(R.id.book_customer);
   viewHolder.bookphone = (TextView)view.findViewById(R.id.book_phone);
   viewHolder.bookIsOpen = (TextView)view.findViewById(R.id.book_isopenned);
   viewHolder.bookId =  (TextView)view.findViewById(R.id.inventory_Id);
   viewHolder.orderdate=(TextView)view.findViewById(R.id.inventory_orderdate);
   viewHolder.delaydays=(TextView)view.findViewById(R.id.inventory_days);
  
   view.setTag(viewHolder);
  }
  else
  {
   view = convertView;
   viewHolder = (ViewHolder) view.getTag();   
  }
  if(mbook.getstatus()<=2)
  {
   viewHolder.bookImage.setImageResource(mbook.getImageId());
   viewHolder.orderId .setText(mbook.getTradeId());
   viewHolder.bookCustomer .setText(mbook.getCustomer());
   viewHolder.bookphone .setText(mbook.getphone());
   if(mbook.getstatus()==0) //找到,并closed
   {
    viewHolder.bookIsOpen.setText("");
   }
   else if(mbook.getstatus()==1)
   {
    viewHolder.bookIsOpen.setText("确认接收?");
    view.setBackgroundColor(Color.parseColor("#F7760F"));
   }
   else
   {
    viewHolder.bookIsOpen.setText("");
    view.setBackgroundColor(Color.parseColor("#dcdcdc"));
   }
   viewHolder.bookId.setVisibility(View.GONE);
   viewHolder.orderdate.setVisibility(View.GONE);
   viewHolder.delaydays.setVisibility(View.GONE);
  }
  else //
  {
   viewHolder.bookImage.setImageResource(R.drawable.unreturned);
   viewHolder.orderId .setVisibility(View.GONE);
   viewHolder.bookCustomer .setVisibility(View.GONE);
   viewHolder.bookphone .setVisibility(View.GONE);
   viewHolder.bookIsOpen.setVisibility(View.GONE);
   viewHolder.bookId.setText(mbook.getId());
   viewHolder.orderdate.setText(mbook.getdate());
   
   SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   long charge= 0;
   try {
    Date d1 = sd.parse(mbook.getdate().toString());
    Date curDate = new Date(System.currentTimeMillis());
    charge=(curDate.getTime()-d1.getTime())/(24*60*60*1000);
   } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } 
    
   viewHolder.delaydays.setText(String.valueOf(charge)+"天");
  }
  return view;
 }
 
 class ViewHolder {
  ImageView bookImage;
  TextView orderId;
  TextView bookCustomer;
  TextView bookphone;
  TextView bookIsOpen;
  TextView bookId;
  TextView orderdate;
  TextView delaydays;
  
  }
}

 

 

=======================

package com.example.mgmt;


public class book implements Comparable<book>{
 
 private String id;
 private int imageId;
 private int status;
 private String customer;
 private String phone;
 private String addr;
 private String tradeId;
 private String orderdate;
 
 public book(String id, int status, String customer, String phone, String tradeId, String addr, String date)
 {
  this.id = id;
  
  this.status = status;
 
  this.customer = customer;
  this.phone=phone;
  this.tradeId = tradeId;
  
  if(this.status ==0)
  {
   this.imageId = R.drawable.book_status_closed;
  }
  else if (this.status == 1)
  {
   this.imageId = R.drawable.book_status_open;   
  }
  else
  {
   this.imageId = R.drawable.book_unknow;   
  }
  
  this.addr=addr;
  this.orderdate = date;
  
 }
 public String getId() {
 return id;
 }
 public String getAddr() {
 return addr;
 }
 public int getImageId() {
 return imageId;
 }
 
 public void setImageId(int imageid) {
  this.imageId = imageid;
 }

 public void setAddr(String addr )
 {
  this.addr = addr;
 }
 public void setdate(String date )
 {
  this.orderdate = date;
 }
 
 public String getCustomer() {
 return customer;
 }

 public String getphone() {
 return phone;
 }
 public String getdate() {
 return orderdate;
 }
 
 public int getstatus() {
 return status;
 }
 public void setStatus(int status) {
   this.status = status;
  }
 
 public String getTradeId() {
 return tradeId;
 }
 
    @Override 
    public int compareTo(book o) { 
        int i = this.getstatus() - o.getstatus();
        return i; 
    }

}

转载于:https://my.oschina.net/u/3428739/blog/882377

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值