ExpandableListView长按GroupItem时,如何处理
2014-02-25 20:02
330 查看
onItemLongClick方法第二个参数:view,这里的view是你按中的位置对应的view。view有个方法getTag(int key)。如果在创建此view的时候就把groupPos,childPos通过setTag(int key, Object value)设置进去。
要把groupPos,childPos通过setTag的方式绑定到view中,就必须操作该view的创建过程。要控制这个过程就必须要在自定义BaseExpandableListAdapter中重写getGroupView及getChildView方法进行操作。
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
//我这里仅通过自己写的mkChildView()方法创建TextView来显示文字,更复杂的可以通过 LayoutInflater来填充一个view
TextView childTv = mkChildView();
// 标记位置
// 必须使用资源Id当key(不是资源id会出现运行时异常),android本意应该是想用tag来保存资源id对应组件。
// 将groupPosition,childPosition通过setTag保存,在onItemLongClick方法中就可以通过view参数直接拿到了!
childTv.setTag(R.id.xxx01, groupPosition);
childTv.setTag(R.id.xxx02, childPosition);
return childTv;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
TextView groupTv = mkGroupView();
// 设置同getChildView一样
groupTv.setTag(R.id.xxx01, groupPosition);
groupTv.setTag(R.id.xxx02, -1); //设置-1表示长按时点击的是父项,到时好判断。
groupTv.setText(groups[groupPosition]);
return groupTv;
}
详细出处参考:http://www.jb51.net/article/38521.htm
要把groupPos,childPos通过setTag的方式绑定到view中,就必须操作该view的创建过程。要控制这个过程就必须要在自定义BaseExpandableListAdapter中重写getGroupView及getChildView方法进行操作。
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
//我这里仅通过自己写的mkChildView()方法创建TextView来显示文字,更复杂的可以通过 LayoutInflater来填充一个view
TextView childTv = mkChildView();
// 标记位置
// 必须使用资源Id当key(不是资源id会出现运行时异常),android本意应该是想用tag来保存资源id对应组件。
// 将groupPosition,childPosition通过setTag保存,在onItemLongClick方法中就可以通过view参数直接拿到了!
childTv.setTag(R.id.xxx01, groupPosition);
childTv.setTag(R.id.xxx02, childPosition);
return childTv;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
TextView groupTv = mkGroupView();
// 设置同getChildView一样
groupTv.setTag(R.id.xxx01, groupPosition);
groupTv.setTag(R.id.xxx02, -1); //设置-1表示长按时点击的是父项,到时好判断。
groupTv.setText(groups[groupPosition]);
return groupTv;
}
详细出处参考:http://www.jb51.net/article/38521.htm
相关文章推荐
- 理解这26句话将不再烦恼
- cocos2d-x应用窗口相关源码剖析2
- 查看SQL执行计划
- 基础练习 01字串
- Linux 学习笔记_13_1_LAMP环境编译(上) --编译前准备
- 数字图像处理—图像分割—并行区域(阀值—单阀值、多阀值)
- Linux 多线程编程
- Linked List Cycle
- 读写锁----笛风读书笔记系列
- 包转发率得计算和背板带宽的计算
- Redisbook学习笔记(3)数据类型之集合
- Redisbook学习笔记(3)数据类型之集合
- poj-2524 Ubiquitous Religions
- Ubuntu 12.0下为Firefox安装Adobe Flash Player
- 获取影片列表报文
- 开博了!!
- Robberies
- linux定时器的使用----笛风读书笔记系列
- mysql 5.5安装手记
- 阿里云ECS每天一件事D1:配置SSH