博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ListView之BaseAdapter
阅读量:5756 次
发布时间:2019-06-18

本文共 4068 字,大约阅读时间需要 13 分钟。

BaseAdapter可以实现自定义的丰富子项视图,本文实现如下所示结果:

 

实现代码:

1 /*  2 ListView :列表  3   4 BaseAdapter 通用的基础适配器  5   6   7   8  *   9  * */ 10 public class BaseAdapter_test extends Activity { 11  12      13     private ListView listview; 14     private int[] images=new int[]{ 15             R.drawable.s1, 16             R.drawable.s2, 17             R.drawable.s3, 18             R.drawable.s4, 19             R.drawable.s5}; 20      21     private BaseAdapter adapter; 22     private Context context; 23     private List
> datas; 24 @Override 25 protected void onCreate(Bundle savedInstanceState) { 26 super.onCreate(savedInstanceState); 27 setContentView(R.layout.baseadapate); 28 context = this; 29 listview = (ListView) findViewById(R.id.listview); 30 31 initData(); 32 33 adapter=new MyAdapter(); 34 35 listview.setAdapter(adapter); 36 37 listview.setOnItemClickListener(new OnItemClickListener() { 38 39 @Override 40 public void onItemClick(AdapterView
parent, View view, 41 int position, long id) { 42 43 Toast.makeText(context,"你选中的listview是:"+ datas.get(position).get("map_content"), 0).show(); 44 } 45 }); 46 47 } 48 //自定义适配器 49 private class MyAdapter extends BaseAdapter 50 { 51 52 @Override 53 public int getCount() { 54 // TODO Auto-generated method stub 55 return datas.size(); 56 } 57 58 @Override 59 public Object getItem(int position) { 60 // TODO Auto-generated method stub 61 return datas.get(position); 62 } 63 64 @Override 65 public long getItemId(int position) { 66 // TODO Auto-generated method stub 67 return position; 68 } 69 70 @Override 71 public View getView(int position, View convertView, ViewGroup parent) { 72 // TODO Auto-generated method stub 73 74 ViewHolder viewHolder; 75 if(convertView==null)//重用view 76 { 77 78 viewHolder=new ViewHolder(); 79 80 convertView=LayoutInflater.from(context).inflate(R.layout.items, null); 81 viewHolder.image=(ImageView) convertView.findViewById(R.id.image); 82 viewHolder.content=(TextView)convertView.findViewById(R.id.content); 83 viewHolder.button =(Button)convertView.findViewById(R.id.button); 84 convertView.setTag(viewHolder); 85 } 86 else 87 { 88 viewHolder=(ViewHolder) convertView.getTag(); 89 } 90 //给每一个item中的控件赋值 91 final Map mymap=datas.get(position); 92 viewHolder.image.setImageBitmap((Bitmap) mymap.get("map_image")); 93 viewHolder.content.setText(mymap.get("map_content")+""); 94 viewHolder.button.setOnClickListener(new OnClickListener() { 95 96 @Override 97 public void onClick(View v) { 98 Toast.makeText(context, "你选中的adapter是:"+mymap.get("map_content"), 1).show(); 99 100 }101 });102 103 return convertView;104 }105 106 107 }108 109 private class ViewHolder110 {111 public ImageView image;112 public TextView content;113 public Button button;114 115 }116 private void initData() {117 118 datas = new ArrayList
>();119 for(int i=0;i<5;i++)120 {121 Map
map = new HashMap
();122 map.put("map_image",BitmapFactory.decodeResource(getResources(), images[i]));123 map.put("map_content", "hahacontent"+i);124 datas.add(map);125 }126 }127 128 129 }

 

baseadapate.xml

1 
2
6 7
12 13
14 15

 

items.xml

1 
2
9 10
16 17
26 27 28
35

 

转载地址:http://wtckx.baihongyu.com/

你可能感兴趣的文章
Java基础教程(19)--Object类
查看>>
微信小程序css继承
查看>>
Apache为mysql以及自己的项目设置虚拟路径
查看>>
ios合并静态库
查看>>
untiy 插件工具: 游戏中 策划数据Excel 导出到项目中
查看>>
微信小程序用户信息解密失败导致的内存泄漏问题。
查看>>
读书笔记之:C语言教程(C程序设计第三版)——清华大学
查看>>
python学习笔记(7)
查看>>
mysql 数据库连接
查看>>
[redis]复制机制,调优,故障排查
查看>>
hdu 2199 Can you solve this equation? 二分
查看>>
浏览器的简要个人分享
查看>>
BBS_笔记
查看>>
R-算术运算符
查看>>
简单的注册表单(摘录自https://www.cnblogs.com/wusifan/archive/2018/09.html))
查看>>
jQuery ajax —— 一些细节以及主函数扩展出来的方法
查看>>
mysql修改用户名和密码
查看>>
快速沃尔什变换(FWT)学习笔记
查看>>
Add Binary <leetcode>
查看>>
Yii PHP 框架分析(二)
查看>>