- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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(
您可能关注的文档
- “父母之爱子,则为之计深远”话题作文导写及示例.doc
- 《凡卡》公开课教案.doc
- 《张衡传》练习.doc
- 2010年湖北省高考数学试卷.doc
- 2012年甘肃省公务员录用考试《申论》真题.doc
- 2013.4.20“我的中国梦”演讲比赛活动总结.doc
- 2013年鄂州中专技能大赛数控专业项目实施方案.doc
- ASCII 码表.doc
- cocos2d-x教程显示中文的问题.doc
- EXCEL在财务管理上的高级应用.doc
- 多彩课堂2015-2016学年高中数学2.4.2平面向量的数量积(第2课时)课件新人教A版必修4.pptx
- 七年级地理第二章第一节(二) 地球的运动课件(新版)新人教版.pptx
- 第2章 第1节 匀速圆周运动(教科版).pptx
- 外研版七年级英语下册 module 2Unit 2.pptx
- 语文课中如何体现语文味.pptx
- 七年级英语上册 Unit 6 Do you like bananas(第1课时)Section A(1a-2d)课件 (新版)人教新目标版.pptx
- 人教版高中英语【课件】高中英语必修一《Welcome Unit》PPT(第一课时).pptx
- 外研版七年级英语下册Module4 Unit 1课件.pptx
- 语文版中职英语基础模块下册unit 5《honesty》ppt课件(1).pptx
- 数学:2.1-第2课时《多项式》课件(人教版七年级上)(中学课件201911).pptx
文档评论(0)