菜鸡写的,可能有错,欢迎指正。
学校老师太坑,自己写的书代码竟然不加注释,只能自学组件方面内容了。
一、Adapter的作用:传递ListVIEw,GrIDVIEw,Spinner等组件的各个位置的具体内容。
二、BaseAdapter三、自定义的Adapter记录最基本的用法
1.数据成员:数据源(数组),上下文,需要绑定的组件类型
public class GoodsAdapter extends BaseAdapter { private Context context;//上下文 private ListVIEw ListVIEw; private List<GoodsInfo> goodsList; //construct function public GoodsAdapter(Context context, ListVIEw ListVIEw){ this.context=context; this.ListVIEw=ListVIEw; } public voID setData(List<GoodsInfo> data){ goodsList=data; }
2.重写方法
主要重写getVIEw方法,因为这个方法决定了每个列表项的内容。这个方法是绑定后自动调用的。 重写的思路:新建每个列表项的对应视图,然后通过一个静态类VIEwHolder来设置视图内组件的具体内容,随后返回此视图。
//convertVIEw对应的是ListVIEw中每个项的VIEw是什么 //通过VIEwHolder来设置convertVIEw的具体内容 @OverrIDe public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) { //获得列表项的的视图,用inflate方法获取,并设置布局 convertVIEw=VIEw.inflate(context,R.layout.goods_item,null); VIEwHolder holder=new VIEwHolder(convertVIEw); //每个位置的商品信息存放在对应的商品列表位置,已设置好 GoodsInfo goodsInfo=goodsList.get(position); holder.setAttribute(goodsInfo); return convertVIEw; }
VIEwHolder的存在意义是优化,好像是可以做到复用vIEw,节省内存。 其成员变量是布局中的各个组件 //VIEwHolder是用于优化且方便设置内容 static class VIEwHolder{ //定义属性,对应布局文件中的各个组件。 public ImageVIEw img; public TextVIEw Title; public TextVIEw desc; //得到对应位置组件实例 public VIEwHolder(VIEw itemVIEw){ img=(ImageVIEw)itemVIEw.findVIEwByID(R.ID.imageVIEw); Title=(TextVIEw)itemVIEw.findVIEwByID(R.ID.Title); desc=(TextVIEw)itemVIEw.findVIEwByID(R.ID.desc); } //设置组件的具体内容 public voID setAttribute(GoodsInfo goodsinfo){ img.setimageResource(goodsinfo.getimgID()); Title.setText(goodsinfo.getTitle()); desc.setText(goodsinfo.getDesc()); } }
四、Adapter使用以ListVIEw为例 :利用ListVIEw创建Adapter对象后,Adapter对象来决定各个列表项内容是什么,然后再绑定回ListVIEw对象。
MainActivity中代码:
public class MainActivity extends AppCompatActivity { private List<GoodsInfo> goodsList;//商品信息列表 private ListVIEw ListVIEw; private GoodsAdapter goodsAdapter; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); initData();//创建商品列表,并初始化各个信息 ListVIEw = (ListVIEw) findVIEwByID(R.ID.ListVIEw); goodsAdapter = new GoodsAdapter(MainActivity.this,ListVIEw); goodsAdapter.setData(goodsList); ListVIEw.setAdapter(goodsAdapter); }
总结 以上是内存溢出为你收集整理的Android:Adapter组件的使用笔记全部内容,希望文章能够帮你解决Android:Adapter组件的使用笔记所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)