zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    C/C++中的abort、atexit、exit和_Exit
    从QQ聊天看交流的有效性
    HDU 1711 Number Sequence (KMP)
    pintos操作系统thread部分的实现
    搜狗面试的经典题(C++map按值排序,class struct的差别)
    SQL学习之使用order by 依照指定顺序排序或自己定义顺序排序
    选中多个或全中订单逻辑
    HDU 4415 Assassin&#39;s Creed(贪心)
    ashx文件中使用session提示“未将对象引用设置到对象的实例”
    .NET运行机制
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/9779746.html
Copyright © 2011-2022 走看看