已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此文档收集于网络,如有侵权,请联系网站删除android中动态布局(动态加入TextView和ListView)分类:Android2011-04-21 16:201068人阅读评论(1)收藏举报javaview plaincopy1. packageorg.guoshi;2. importjava.util.ArrayList;3. importjava.util.HashMap;4. importjava.util.List;5. importjava.util.Map;6. importorg.guoshi.adapter.ImageAndTextAdapter;7. importandroid.app.Activity;8. importandroid.graphics.Color;9. importandroid.os.Bundle;10. importandroid.util.Log;11. importandroid.view.View;12. importandroid.view.View.OnClickListener;13. importandroid.view.ViewGroup.LayoutParams;14. importandroid.widget.LinearLayout;15. importandroid.widget.ListAdapter;16. importandroid.widget.ListView;17. importandroid.widget.RelativeLayout;18. importandroid.widget.TextView;19. publicclassMainextendsActivity20. /*Calledwhentheactivityisfirstcreated.*/21. Override22. publicvoidonCreate(BundlesavedInstanceState)23. super.onCreate(savedInstanceState);24. setContentView(R.layout.friend_info_view);25. finalLinearLayoutlinearLayout=(LinearLayout)findViewById(R.id.groups);26. finalListViewlv=newListView(this);27. ListMapdata=newArrayListMap();28. Mapmap=newHashMap();29. map.put(title,jayqean);30. map.put(imgsrc,R.drawable.icon);31. data.add(map);32. ListAdapteradapter=newImageAndTextAdapter(Main.this,data,R.layout.chats_view_item,newStringtitle,imgsrc,newint33. R.id.chats_view_name,34. R.id.chats_view_item_image);35. lv.setAdapter(adapter);36. finalTextViewtv1=newTextView(this);37. tv1.setText(常用联系人);38. tv1.setId(1);39. finalRelativeLayout.LayoutParamslp1=newRelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);40. lp1.addRule(RelativeLayout.BELOW,R.id.groups);41. tv1.setLayoutParams(lp1);42. tv1.setBackgroundColor(R.color.group_view_background);43. tv1.setOnClickListener(newOnClickListener()44. booleanflag=false;45. Override46. publicvoidonClick(Viewv)47. /TODOAuto-generatedmethodstub48. Log.d(tag,tv1.getText().toString();49. if(!flag)50. linearLayout.addView(lv,linearLayout.indexOfChild(tv1)+1);51. /lp1.addRule(RelativeLayout.BELOW,1);52. /linearLayout.addView(lv,lp1);53. flag=true;54. else55. linearLayout.removeView(lv);56. flag=false;57. 58. 59. );60. linearLayout.addView(tv1,lp1);/线性布局通过参数index控制加入的控件的位置61. /-62. /加入分割线63. finalTextViewline=newTextView(this);64. line.setLayoutParams(newLayoutParams(LayoutParams.FILL_PARENT,1);65. line.setBackgroundColor(Color.WHITE);66. linearLayout.addView(line,1);67. /-68. finalListViewlv2=newListView(this);69. ListMapdata2=newArrayListMap();70. Mapmap2=newHashMap();71. map2.put(title,xiaobei);72. map2.put(imgsrc,R.drawable.icon);73. data2.add(map2);74. ListAdapteradapter2=newImageAndTextAdapter(Main.this,data2,R.layout.chats_view_item,newStringtitle,imgsrc,newint75. R.id.chats_view_name,76. R.id.chats_view_item_image);77. lv2.setAdapter(adapter2);78. finalTextViewtv2=newTextView(this);79. tv2.setText(离线好友);80. tv2.setLayoutParams(newLayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);81. tv2.setBackgroundColor(R.color.group_view_background);82. tv2.setOnClickListener(newOnClickListener()83. booleanflag=false;84. Override85. publicvoidonClick(Viewv)86. /TODOAuto-generatedmethodstub87. Log.d(tag,tv2.getText().toString();88. if(!flag)89. linearLayout.addView(lv2,linearLayout.indexOfChild(tv2)+1);90. flag=true;91. else92. linearLayout.removeView(lv2);93. flag=false;94. 95. 96. );97. linearLayout.addView(tv2,2);98. 99. 控制布局,可以通过RelativeLayout.LayoutParams类final LinearLayout linearLayout = (LinearLayout) findViewById(R.id.groups);final TextView tv1 = new TextView(this);tv1.setText(常用联系人);RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);lp1.addRule(RelativeLayout.BELOW, R.id.groups);tv1.setLayoutParams(lp1);linearLayout.addView(tv1, lp1);也可采用linearLayout.addView(tv1, 0); / 线性布局 通过参数index控制加入的控件的位置javaview plaincopy1. packageorg.guoshi.adapter;2. importjava.util.List;3. importjava.util.Map;4. importandroid.content.Context;5. importandroid.graphics.Bitmap;6. importandroid.graphics.BitmapFactory;7. importandroid.util.Log;8. importandroid.view.LayoutInflater;9. importandroid.view.View;10. importandroid.view.View.OnClickListener;11. importandroid.view.ViewGroup;12. importandroid.widget.Checkable;13. importandroid.widget.ImageView;14. importandroid.widget.SimpleAdapter;15. importandroid.widget.TextView;16. publicclassImageAndTextAdapterextendsSimpleAdapter17. privateContextmcontext;18. privateintmTo;19. privateStringmFrom;20. privateViewBindermViewBinder;21. privateList?extendsMapmData;22. privateintmResource;23. privateLayoutInflatermInflater;24. publicImageAndTextAdapter(Contextcontext,25. List?extendsMapdata,intresource,Stringfrom,26. intto)27. super(context,data,resource,from,to);28. mcontext=context;29. mData=data;30. mResource=resource;31. mFrom=from;32. mTo=to;33. mInflater=(LayoutInflater)context34. .getSystemService(Context.LAYOUT_INFLATER_SERVICE);35. /mInflater=LayoutInflater.from(mcontext);36. 37. /*38. *seeandroid.widget.Adapter#getView(int,View,ViewGroup)39. */40. publicViewgetView(intposition,ViewconvertView,ViewGroupparent)41. returncreateViewFromResource(position,convertView,parent,mResource);42. 43. privateViewcreateViewFromResource(intposition,ViewconvertView,44. ViewGroupparent,intresource)45. Viewv;46. if(convertView=null)47. v=mInflater.inflate(resource,parent,false);48. finalintto=mTo;49. finalintcount=to.length;50. finalViewholder=newViewcount;51. for(inti=0;icount;i+)52. holderi=v.findViewById(toi);53. 54. v.setTag(holder);55. else56. v=convertView;57. 58. bindView(position,v);59. /finalintindex=position;60. /v.setOnClickListener(newOnClickListener()61. /62. /publicvoidonClick(Viewv)63. /TODOAuto-generatedmethodstub64. /Log.d(item,index+);65. /66. /);67. returnv;68. 69. privatevoidbindView(intposition,Viewview)70. finalMapdataSet=mData.get(position);71. if(dataSet=null)72. return;73. 74. finalViewBinderbinder=mViewBinder;75. finalViewholder=(View)view.getTag();76. finalStringfrom=mFrom;77. finalintto=mTo;78. finalintcount=to.length;79. for(inti=0;icount;i+)80. finalViewv=holderi;81. if(v!=null)82. finalObjectdata=dataSet.get(fromi);83. Stringtext=data=null?:data.toString();84. if(text=null)85. text=;86. 87. booleanbound=false;88. if(binder!=null)89. bound=binder.setViewValue(v,data,text);90. 91. if(!bound)92. if(vinstanceofCheckable)93. if(datainstanceofBoolean)94. (Checkable)v).setChecked(Boolean)data);95. else96. thrownewIllegalStateException(v.getClass()97. .getName()98. +shouldbeboundtoaBoolean,nota99. +data.getClass();100. 101. elseif(vinstanceofTextView)102. setViewText(TextView)v,text);103. elseif(vinstanceofImageView)104. if(datainstanceofInteger)105. setViewImage(ImageView)v,(Integer)data);106. else107. setViewImage(ImageView)v,text);108. 109. else110. thrownewIllegalStateException(111. v.getClass().getName()112. +isnota113. +viewthatcanbeboundsbythisSimpleAdapter);114. 115. 116. 117. 118. 119. /*120. *CalledbybindView()tosettheimageforanImageViewbutonlyifthere121. *isnoexistingViewBinderoriftheexistingViewBindercannothandle122. *bindingtoanImageView.123. *124. *Thismethodiscalledinsteadoflink#setViewImage(ImageView,String)125. *ifthesupplieddataisanintorInteger.126. *127. *paramv128. *ImageViewtoreceiveanimage129. *paramvalue130. *thevalueretrievedfromthedataset131. *132. *see#setViewImage(ImageView,String)133. */134. publicvoidsetViewImage(ImageViewv,intvalue)135. v.setImageResource(value);136. 137. /*138. *CalledbybindView()tosettheimagefora
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 交通安全设施工变革管理水平考核试卷含答案
- 油气水井测试工班组考核强化考核试卷含答案
- 2025年新版Abb机器人题目及答案
- 2025年县乡教师选调考试《教育学》题库及答案详解(基础+提升)
- 2026年设备质押合同(1篇)
- 2026年酒吧驻唱合同(1篇)
- 2026年租赁养生馆合同(1篇)
- 2025~2026学年河北省秦皇岛市高二上学期2月期末生物试卷
- 2025~2026学年江苏省苏州市高一上学期期末生物学试卷
- 2026年中药知识要点与自测题集
- 25道中国邮政集团邮政数据分析师岗位常见面试问题含HR常问问题考察点及参考回答
- 入户申请审批表(正反面,可直接打印)
- 天津市人教版七年级下册期中生物期中试卷及答案
- 工商企业管理专业案例分析报告
- 教师语言与沟通艺术智慧树知到答案章节测试2023年温州大学
- 《小白如何写短视频脚本》
- 天象仪演示系统的演进与具体应用,天文学论文
- GB/T 19068.1-2017小型风力发电机组第1部分:技术条件
- GB/T 17359-2012微束分析能谱法定量分析
- 公司付款委托书 模板
- GA/T 1674-2019法庭科学痕迹检验形态特征比对方法确认规范
评论
0/150
提交评论