我的android 第20天 - 自定义适配器
2013-12-04 17:41
267 查看
我的android 第20天 - 自定义适配器
实现流程
7、自定义适配器
. 当想操作ItemView中子控件时需要自定义适配器
. 适配器常用API
. getCount:总共有多少数据,决定了getView中的position
. getView(int position,
View convertView,
ViewGroup parent) : 每有一个Item进入视野范围内
就会调用,一般在这里初始化Item
. convertView : 可循环利用的ItemView
. parent : ItemView的父控件
. notifyDataSetChanged :刷新列表,重新初始化Item,
也就是重新调用getView
.LayoutInflater
convertView= getLayoutInflater().
inflate(R.layout.item_book, parent, false);
. @param root : 指定布局文件根节点的父控件
. @param attachToRoot :是否要将根节点添加到
8、删除列表项
. data.removeAll(selectedBooks) 移去已选的图书列表项
. selectedBooks.clear(); 清空选择图书的数组标记
. adapter.notifyDataSetChanged();刷新列表
9、对列表项标记好看、不好看
关注点
1、自定义适配器(getView、getCount)
2、上下文菜单
. onCreateContextMenu 创建
. onContextItemSelected 监听
3、选择菜单(在res\menu中设计选择菜单)
. groupId 组id
. itemId 菜单项id
. order 菜单排列顺序
. setIcon 菜单图标
下载视频代码
实现流程
7、自定义适配器
. 当想操作ItemView中子控件时需要自定义适配器
. 适配器常用API
. getCount:总共有多少数据,决定了getView中的position
. getView(int position,
View convertView,
ViewGroup parent) : 每有一个Item进入视野范围内
就会调用,一般在这里初始化Item
. convertView : 可循环利用的ItemView
. parent : ItemView的父控件
. notifyDataSetChanged :刷新列表,重新初始化Item,
也就是重新调用getView
.LayoutInflater
convertView= getLayoutInflater().
inflate(R.layout.item_book, parent, false);
. @param root : 指定布局文件根节点的父控件
. @param attachToRoot :是否要将根节点添加到
private class BookAdapter extends SimpleAdapter {
public BookAdapter(Context context) {
super(context, data, R.layout.item_book, new String[]{NAME}, new int[]{R.id.name}); } public int getCount() { return data==null ? 0 : data.size(); } /** * 每有Item进入视野范围内就会调用@param convertView : 可循环利用的ItemView */ public View getView(int position, View convertView, ViewGroup parent) { /** * @param root : 指定布局文件根节点的父控件 @param attachToRoot 是否要将根节点添加到parent 默认是true) */ View itemView = getLayoutInflater().inflate(R.layout.item_book, parent, false); System.out.println(position + "-item-" +itemView); System.out.println(position + "-convert-" +convertView); // 取得当前Item对应的map数据 HashMap<String, Object> map = data.get(position); String nameText = map.get(NAME).toString(); boolean goodLook = (Boolean) map.get(GOOG_LOOK); // 设置书名 TextView nameView = (TextView) itemView.findViewById(R.id.name); nameView.setText(nameText); // 根据隐藏属性设置文字颜色 nameView.setTextColor(goodLook ? Color.RED : Color.YELLOW); // 给CheckBox绑定监听 CheckBox checkBox = (CheckBox) itemView.findViewById(R.id.check); checkBox.setOnCheckedChangeListener(MenusActivity1.this); // checkBox.setTag(R.id.map, tag) // 将map数据跟checkbox绑定在一起 checkBox.setTag(map); return itemView; }
8、删除列表项
. data.removeAll(selectedBooks) 移去已选的图书列表项
. selectedBooks.clear(); 清空选择图书的数组标记
. adapter.notifyDataSetChanged();刷新列表
9、对列表项标记好看、不好看
关注点
1、自定义适配器(getView、getCount)
2、上下文菜单
. onCreateContextMenu 创建
. onContextItemSelected 监听
3、选择菜单(在res\menu中设计选择菜单)
. groupId 组id
. itemId 菜单项id
. order 菜单排列顺序
. setIcon 菜单图标
/** * 选择菜单:删除 */ private void optionsMenuDelete() { if (selectedBooks.isEmpty()) { Toast.makeText(this, R.string.select_book, Toast.LENGTH_SHORT).show(); return; } // 移除checkBox选择的图书 data.removeAll(selectedBooks); // 清空选中的图书的id selectedBooks.clear(); // 刷新列表 adapter.notifyDataSetChanged(); } /** * 选择菜单:好看\不好看 */ private void optionsMenuGoodLookOrNot(int itemId) { if (selectedBooks.isEmpty()) { Toast.makeText(this, R.string.select_book, Toast.LENGTH_SHORT).show(); return; } for (HashMap<String, Object> map : selectedBooks) { map.put(GOOG_LOOK, itemId == R.id.menu_good_look); } // 清除选中的图书的id selectedBooks.clear(); // 刷新列表 adapter.notifyDataSetChanged(); }
下载视频代码
相关文章推荐
- android 代码实现控件之间的间距
- 解決Linux下Android开发真机调试设备不被识别问题
- [Android]在代码里运行另一个程序的方法
- [软件咨询]WPS2012正式版已发布 金山Office移动版4.0发布
- Android笔记-Linux Kernel Ftrace (Function Trace)解析
- android USB如何修改VID具体实现
- Android Mouse实现过程详细笔记
- 深入Android Browser配置管理的详解
- Android Mms之:深入理解对话列表管理
- Android APP与媒体存储服务的交互
- android 多线程技术应用
- Android之采用execSQL与rawQuery方法完成数据的添删改查操作详解
- Android数据类型之间相互转换系统介绍
- 通过Android trace文件分析死锁ANR实例过程
- Android实现左右滑动效果的方法详解
- Android 各国语言缩写及简称详细介绍
- Android 自动判断是电话,网址,EMAIL方法之Linkify的使用
- android IPC之binder通信机制
- Android应用开发中模拟按下HOME键的效果(实现代码)
- Android 读写文件方法汇总