自定义ListView中的item
来源:互联网 发布:淘宝网店送什么小赠品 编辑:程序博客网 时间:2024/06/17 21:28
[功能]
* AdapterView
- ListView
- GridView
- Gallery
- Spinner
* Adapter
- SimpleAdapter
- SimpleCursorAdapter
- ArrayAdapter
至于 AdapterView & Adapter 如何选择的问题 有2点需要注意:
× AdapterView 的选择 只和界面有关 和具体数据无关
× Adapter 的选择 只喝数据有关 和界面无关
二者耦合度高 互不干涉!
android给出的AdapterView中所使用的Adapter的item都是TextView 即 只能显示一下文字信息 这就限制了它的应用 所以现在告诉大家怎么使用别的View
[思路]
1. 自定义一个 extends BaseAdapter 的 class 如 public class CustomList extends BaseAdapter
2. 填充 CustomList 的一些方法 如下:
- public int getCount()
- public Object getItem(int position)
- public long getItemId(int position)
- public View getView(int position, View convertView, ViewGroup parent)
[代码]
1. 比如 现在有下列数据 要求显示之
- String[] week = {
- "JAN","FEB","MAR","APR",
- "MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC "
- };
2. 一些函数的定义如下
- public class CustomList extends BaseAdapter {
- Activity activity;
- //construct
- public CustomList(Activity a ) {
- activity = a;
- }
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return week.length;
- }
- @Override
- public Object getItem(int position) {
- // TODO Auto-generated method stub
- return week[position];
- }
- @Override
- public long getItemId(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- // TODO Auto-generated method stub
- TextView tv = new TextView(activity);
- tv.setText(week[position]);
- return tv;
- }
- }
3. 考虑到美观 我们可以把getView()的一些填充提取出来 即 根据目标的position 得到目标所需View
- public View addCustomView(int position){
- View view = new View(activity);
- switch(position){
- case 11:
- Button btn = new Button(activity);
- btn.setText("Yes!");
- view = btn;
- case 12:
- ImageView iv = new ImageView(activity);
- iv.setImageResource(R.drawable.robot);
- view = iv;
- break;
- default:
- TextView tv = new TextView(activity);
- tv.setGravity(1);
- tv.setText(week[position]);
- tv.setPadding(5, 5, 5, 5);
- view = tv;
- }
- return view;
- }
4. 如何使用
- public View getView(int position, View convertView, ViewGroup parent) {
- // TODO Auto-generated method stub
- return addCustomView(position);
- }
这样 我们如果要定制某个position的View 就可以增加相应的case..
done!
转载来自:http://www.javaeye.com/topic/568927
- 自定义ListView中的item
- Android 自定义ListView中的Item样式
- ListView GridView 自定义ViewGroup的单个item 刷新 和 单个item中的局部元素刷新
- 自定义ListView item的例子
- listView Item中的焦点情况
- 获取listview item中的数据
- qt 取得listview中的item
- listview 中的不同 item 实现
- listview中的item增加事件
- listView中的item获得焦点
- ListView item中的菜单PopupMenu
- 刷新listView中的某个Item
- ListView中item中的checkBox
- ListView中的item点击事件
- 获取自定义item的ListView里的View中的内容,如Text
- 自定义类似于listView中Item背景
- 自定义ListView里面的item不能点击
- ListView 自定义Adapter 实现多视图Item
- OCS终极备份指南
- Nandflash在SkyEye 1.3.1上的配置
- 斯坦福大学开放课程——编程方法 作业1-2
- 插入远程代码
- JBOSS:javax/activation/DataHandler
- 自定义ListView中的item
- xsl实例说明
- 无线骇客如何使用AirSnort破解WEP密码?
- 《时代金融》
- Hibernate学习(—)
- PL/0语言编译程序整理实现:(1)、语法描述EBNF
- What we do?
- resizeImg 图片定高宽
- Sql 查看、处理死锁!