|
Android开发中ListView绑定数据知识讲解 |
|
|
Android开发中ListView绑定数据知识讲解List服务一般有4种绑定方法:本文使用自定义适配器继承BaseAdapter来实现数据 绑定,废话不说,直接上代码:1.自定义适配器:ShoppingProductAdapter?1234567891011121314 15161718192021222324252627282930313233343536373839404142434445464 74849505152535455565758596061626364656667686970717273747576777879 80818283848586878889909192939495969798991001011021031041051061071 08109110111112113114115116117118119120121122123124125126127128129 13013113213313413513613713813914014114214314414514614714814915015 11521531541551561571581591601611621631641651661671681691701711721 73174175176177178179180181182183184185186187188189190191192193194 195196197198199200201202packagecom.example.msh.ModelInfo.Adapter ;?importandroid.app.Activity;importandroid.view.LayoutInflater; importandroid.view.View;importandroid.view.ViewGroup;importand roid.widget.BaseAdapter;importandroid.widget.ImageButton;import android.widget.TextView;?importcom.example.msh.mshaliapp.Product CartActivity;importcom.example.msh.mshaliapp.R;?importjava.util .List;?/?购物商品Adapter容器数据适配器?Author:William(徐威)?CreateTim e:2018-07-25?/publicclassShoppingProductAdapterextendsBaseAd apter{?//公共对象?ListproductList;?Acti vityCon;?privateLayoutInflatermInflater;??//构造函数?publicShoppi ngProductAdapter(Activitycontext,Listo>list){?this.productList=list;//获取传过来的数据?this.Con=context; ?this.mInflater=context.getLayoutInflater();?//LayoutInflater.f rom(context);?}??//获取数量638棋牌http://dadiqipaigw.cn?@Override?publi cintgetCount(){?returnproductList.size();?}??@Override?public ObjectgetItem(intposition){?returnposition;?}??@Override?pub liclonggetItemId(intposition){?returnposition;?}??/?视图标签 赋值?Author:William(徐威)?CreateTime:2018-07-25?/?@Override?pub licViewgetView(inti,Viewview,ViewGroupviewGroup){?Viewro w=view;?ShoopingProductWrapperwrapper;?if(row==null){//我们要 适配的控件所在的视图row=mInflater.inflate(R.layout.adapter_shopping_product ,viewGroup,false);wrapper?=newShoopingProductWrapper(row);ro w.setTag(wrapper);?}else{wrapper=(ShoopingProductWrapper)row .getTag();?}??//商品系统号?TextViewProductSysNo=wrapper.getProductSys No();?//商品编号?TextViewProductID=wrapper.getProductID();?//商品名称?Te xtViewProductName=wrapper.getProductName();?//商品价格?TextViewPric e=wrapper.getPrice();?//购物数量/单位?TextViewProductNum=wrapper.getPr oductNum();?//商品金额?TextViewProductAmt=wrapper.getProductAmt();?/ /商品序号?TextViewProductCartNumber=wrapper.getProductCartNumber();? ?//设置控件要显示的文字?ProductSysNo.setText(String.valueOf(productList.get (i).getProductSysNo()));?ProductID.setText(productList.get(i).get ProductID());??//商品名称切割处理?StringproductName=productList.get(i) .getProductName();?if(productName.length()>17){productName= String.format("%s..",productName.substring(0,18));?}?ProductNam e.setText(productName);??Price.setText(productList.get(i).getPric e());?ProductNum.setText(productList.get(i).getProductNum());?Pro ductAmt.setText(productList.get(i).getProductAmt());?ProductCartN umber.setText(String.valueOf(productList.get(i).getProductCartNu mber()));???//得到listview上的按钮?ImageButtonimgBtnDeleteProduct=ro w.findViewById(R.id.imgBtnDeleteProduct);?imgBtnDeleteProduct.set OnClickListener(newView.OnClickListener(){?@Overridepublicvoid onClick(Viewview){?//得到当前父对象?Viewlist=(View)(view.getParen t().getParent());?//同级的其它对象?intproductSysNo=Integer.parseInt(( (TextView)list.findViewById(R.id.tvProductSysNo)).getText().toSt ring());?((ProductCartActivity)Con).imgBtnDeleteProduct_listener( productSysNo);}?});???returnrow;?}??/?商品购物车Adapter容器?Auth or:William(徐威)?CreateTime:2018-07-26?/?classShoopingProductW rapper{??publicShoopingProductWrapper(Viewrow){this.row=row;? }??privateViewrow;??//商品系统号棋牌评测网http://www.77884.net?publicTex tViewProductSysNo;??//商品编号?publicTextViewProductID;??//商品名称?pu blicTextViewProductName;??//商品价格?publicTextViewPrice;??//购物数量 /单位?publicTextViewProductNum;??//商品金额?publicTextViewProductAm t;??//商品序号?publicTextViewProductCartNumber;??publicTextViewge tProductSysNo(){if(ProductSysNo==null){?ProductSysNo=(Text View)row.findViewById(R.id.tvProductSysNo);}returnProductSysNo; ?}??publicTextViewgetProductID(){if(ProductID==null){?Prod uctID=(TextView)row.findViewById(R.id.tvProductID);}returnPro ductID;?}??publicTextViewgetProductName(){if(ProductName==n ull){?ProductName=(TextView)row.findViewById(R.id.tvProductNa me);}returnProductName;?}??publicTextViewgetPrice(){if(Price ==null){?Price=(TextView)row.findViewById(R.id.tvPrice);}re turnPrice;?}??publicTextViewgetProductNum(){if(ProductNum== null){?ProductNum=(TextView)row.findViewById(R.id.tvProductN um);}returnProductNum;?}??publicTextViewgetProductAmt(){if(P roductAmt==null){?ProductAmt=(TextView)row.findViewById(R.i d.tvProductAmt);}returnProductAmt;?}??publicTextViewgetProduct CartNumber(){if(ProductCartNumber==null){?ProductCartNumber =(TextView)row.findViewById(R.id.tvProductCartNumber);}returnP roductCartNumber;?}?}}uctadapterinfo>2.代码中我使用到的适配器数据实体类:ShoppingProductAdapterInfo就不具体 贴出代码了乐淘棋牌http://www.letaoqpyx.com?123456/商品购物车Adapter实体类Au thor:William(徐威)CreateTime:2018-07-25/publicclassShoppingProductAdapterInfoextendsObjectimplementsSerializable{//此处不具体申明属性了,仅做参考}3.Activity页面调用:?1234//填充购物篮fillShoppingProduct(false);//此方法是我的业务逻辑方法,大家不用参考,主要调用是下面2句shoppingAdapter=newShoppingProductAdapter(this,shoppingCartList);//绑定适配器lvProductCartList.setAdapter(shoppingAdapter);//设置listview的数据源为adapte |
|
|
|
|
|
|
|
|
|
|