android开发教程自定义数据源.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android自定义GridView/ListView数据源 在开发中,我们常常会遇到比较复杂的GridView/ListView的布局,重新实现BaseAdapter不但能帮助我们实现我们想要的布局效果,并且在绑定大数据量时也不会感觉有卡壳现象。记得以前用一个ListView直接去绑定手机内的联系人Cursor(一百多号人),滑动的时候就会有卡的感觉。今天决定写个Demo是因为在项目中可能会要实现这样的一个效果:一个GridView中绑定4个ImageButton,有些按钮在特定的情况下是不可用的,也就是Enable=false;并且不同的按钮要拥有各自不同的点击事件。 实现第一点好办,添加一个标志位boolean bl来控制按钮的Enable状态,实现第二点就是将View.onClickListener添加到List列表中 1、MyAdapter.Java继承自BaseAdapter Java代码 publicclassMyAdapterextendsBaseAdapter{ privateContextcontext; privateList<Map<String,Object>>list; privateLayoutInflatermInflater; publicMyAdapter(Contextcontext,List<Map<String,Object>>list){ this.context=context; this.list=list; mInflater=LayoutInflater.from(this.context); } publicintgetCount(){ //TODOAuto-generatedmethodstub if(list!=null) returnlist.size(); else return0; } publicObjectgetItem(intposition){ //TODOAuto-generatedmethodstub if(list!=null) returnlist.get(position); else returnnull; } publiclonggetItemId(intposition){ //TODOAuto-generatedmethodstub returnposition; } @SuppressWarnings("unused") publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ //TODOAuto-generatedmethodstub ViewHolderholder=null; if(holder==null){ holder=newViewHolder(); convertView=mInflater.inflate(R.layout.gridview_item,null); holder.ib=(ImageButton)convertView.findViewById(R.id.ib); convertView.setTag(holder); }else{ holder=(ViewHolder)convertView.getTag(); } //绑定点击事件 holder.ib.setOnClickListener((OnClickListener)list.get(position).get("listen")); //通过标志位控制按钮的Enable if(Boolean.parseBoolean(list.get(position).get("bl").toString())) holder.ib.setEnabled(true); else holder.ib.setEnabled(false); holder.ib.setImageResource(Integer.parseInt(list.get(position).get("icon").toString())); returnconvertView; } publicfinalclassViewHolder{ publicImageButtonib; } } 2、绑定数据源 Java代码 publicclassMainextendsActivity{ /**Calledwhentheactivityisfirstcreated.*/ privateGridViewgvtest; privateList<Map<String,Object>>list; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(

文档评论(0)

PPT精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档