Android 自定义ListView

1 主界面(activity_inbound_po.xml)

添加一个 ListView

<ListView
        android:id="@+id/lvInboundPO"
        android:layout_width="368dp"
        android:layout_height="140dp"
        android:layout_marginStart="4dp"
        android:layout_marginLeft="4dp"
        android:layout_marginTop="160dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

2 创建一个布局页面(sub_inboundpolist.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/qrcode"
        android:layout_width="354dp"
        android:layout_height="35dp"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="10dp"
        android:gravity="center_vertical|left" />

    <TextView
        android:id="@+id/qty"
        android:layout_width="113dp"
        android:layout_height="29dp"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="50dp"
        android:gravity="center_vertical|left" />

    <TextView
        android:id="@+id/qtyActual"
        android:layout_width="113dp"
        android:layout_height="29dp"
        android:layout_marginLeft="256dp"
        android:layout_marginTop="50dp"
        android:gravity="center_vertical|left" />

</RelativeLayout>
3 实现BaseAdapter

InboundPO是我自己的类,(如果你自己的是List,那么修改一下就好了)

他有多个属性以及一个 List泛型集合。

public class InboundPO {
    @JsonProperty("PPR_ID")
    private Integer pPR_ID;
    @JsonProperty("PO_No")
    private String pO_No;
    @JsonProperty("PPR_No")
    private String pPR_No;
    @JsonProperty("Order_No")
    private String order_No;
    @JsonProperty("W_ID")
    private Integer w_ID;
    @JsonProperty("InvoicingList")
    private List<Invoicing> invoicingList=new ArrayList<>();

    public Integer getPPR_ID() {
        return pPR_ID;
    }

    public void setPPR_ID(Integer pPR_ID) {
        this.pPR_ID = pPR_ID;
    }

    public String getPO_No() {
        return pO_No;
    }

    public void setPO_No(String pO_No) {
        this.pO_No = pO_No;
    }

    public String getPPR_No() {
        return pPR_No;
    }

    public void setPPR_No(String pPR_No) {
        this.pPR_No = pPR_No;
    }

    public String getOrder_No() {
        return order_No;
    }

    public void setOrder_No(String order_No) {
        this.order_No = order_No;
    }

    public Integer getW_ID() {
        return w_ID;
    }

    public void setW_ID(Integer w_ID) {
        this.w_ID = w_ID;
    }

    public List<Invoicing> getInvoicingList() {
        return invoicingList;
    }

    public void setInvoicingList(List<Invoicing> invoicingList) {
        this.invoicingList = invoicingList;
    }

}

接着创建绑定适配器

public class Adapter_InboundPO extends BaseAdapter {
    private Context context;

    /** 数据源 */
    private InboundPO inboundPO;

    private LayoutInflater inflater;

    public Adapter_InboundPO(Context context, InboundPO inboundPO) {
        super();
        this.context = context;
        this.inboundPO = inboundPO;
        inflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return inboundPO.getInvoicingList().size();
    }

    @Override
    public Invoicing getItem(int position) {
        return inboundPO.getInvoicingList().get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View view = convertView;
        if (view == null) {
            view = inflater.inflate(R.layout.sub_inboundpolist, parent, false);
        }
        String qrCode = String.format("%s-%s-%s", inboundPO.getPO_No(), inboundPO.getPPR_No(), inboundPO.getInvoicingList().get(position).getP_SKU());
        TextView tvQRCode = (TextView) view.findViewById(R.id.qrcode);
        TextView tvQty = (TextView) view.findViewById(R.id.qty);
        TextView tvQtyActual = (TextView) view.findViewById(R.id.qtyActual);
        tvQRCode.setText(qrCode);
        tvQty.setText(inboundPO.getInvoicingList().get(position).getP_Amount().toString());
        tvQtyActual.setText(inboundPO.getInvoicingList().get(position).getP_AmountActual().toString());
        return view;
    }
}

4 在界面上(InboundPOActivity)绑定

Adapter_InboundPO adapter  = new Adapter_InboundPO(getBaseContext(),inboundPO);
                
                lvInboundPO.setAdapter(adapter);

PS   :  ListView中包含EditView包含的一系列问题。

参考:https://blog.csdn.net/hanjun0612/article/details/80482679


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值