ExpandableListView长按监听实现

原创 2015年07月07日 16:11:39

多级列表(ExpandableListView)长按监听实现


再适配器中加代码:


     1.在getChildView()中设置视图

       view.setTag(参数1(id1),父控件索引(groupPosition));参数1:必须是本类中的具体id:例R.id.控件,

       view.setTag(参数1(id2),子控件索引(childPosition));参数1:必须是本类中的具体id:例 R.id.控件。

<pre name="code" class="java">public View getChildView(final int groupPosition, final int childPosition,
			boolean isLastChild, View convertView, ViewGroup parent) {
		View view = convertView;

		if (view == null) {
			//填充视图
			view = LayoutInflater.from(context).inflate(R.layout.music_child, null);
			vcHolder = new ViewChildHolder();
			/*子布局中的控件初始化*/
			view.setTag(vcHolder);
		}else{
			vcHolder = (ViewChildHolder) view.getTag();
		}
		
	     view.setTag(R.id.about_back_ImageView,groupPosition);//参数1:必须是本类中的具体id:例R.id.控件,
	     view.setTag(R.id.about_Email,childPosition);
		

		return view;
	}



     2.在getGroupView()中设置视图       view.setTag(参数1(id1),父控件索引(groupPosition));参数1:同上

       view.setTag(参数1(id2),-1);参数1:同上

代码如下:

public View getGroupView(final int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {
		View view = convertView;
		if (view == null) {
			view = LayoutInflater.from(context).inflate(R.layout.music_group, null);
	                /*
                         初始化group中的控件*/
			view.setTag(vGHolder);
		}else{
			vGHolder = (ViewGroupHolder) view.getTag();
		}
		 view.setTag(R.id.about_back_ImageView,groupPosition);//参数1:必须是本类中的具体id:例R.id.控件,
	         view.setTag(R.id.about_Email,-1);
		
		
		return view;
	}



     3.在实例化ExpandableListView对象 .setOnItemLongClickListener()中
    {
int groupPos = view.getTag(id1);
int childPos = view.getTag(id2);

if(childPos == -1){

  //长按父控件

         }else{

                  //长按子控件

         }

      }

代码如下:

ev_listview.setOnItemLongClickListener(new OnItemLongClickListener() {

			@Override
			public boolean onItemLongClick(AdapterView<?> parent, View view,
					int position, long id) {
				// TODO Auto-generated method stub
				int groupPos = (Integer) view.getTag(R.id.about_back_ImageView);
				int childPos = (Integer) view.getTag(R.id.about_Email);
				if(childPos == -1){//长按父控件
					Toast.makeText(getContext(), "groupPos"+groupPos, Toast.LENGTH_SHORT).show();
		         }else{//长按子控件
		        	 Toast.makeText(getContext(), "groupPos"+groupPos+"childPos"+childPos, Toast.LENGTH_SHORT).show();
		         }
				return true;
			}
		});


安卓集成友盟登陆分享(附带源码)

我知道没图你是不会看的: 1.下载友盟的登陆分享SDK, http://dev.umeng.com/social/android/quick-integration 友盟的分享一般采用两种方式:...
  • zq019
  • zq019
  • 2017年08月02日 11:37
  • 550

Android-ListView所包含的item里面的控件点击事件

Android中ListView的item的子控件的事件监听
  • SQ_Bang
  • SQ_Bang
  • 2016年06月22日 12:20
  • 678

安卓ExpandableListView长按监听判断点击的item属于哪个group(群组)和child(子项)

安卓的ExpandableListView 继承自ListView,扩展了一些功能,实现的效果类似于QQ的好友分组。如图: 但是 ExpandableListView 提供了setOnGroupCl...

Android 变相实现长按menu键监听

  • 2016年01月15日 09:26
  • 1KB
  • 下载

Android开发之PullToRefresh的Click点击事件的监听实现长按删除Item

本文为原创博客,出自http://blog.csdn.net/minimicall 到今天为止,搜芽的卖家版本应该来说已经基本完成,攻坚克难的一路过来。速度也控制的比较好。 项目过程进度 ...

ExpandableListView 长按事件demo

  • 2011年11月22日 12:09
  • 46KB
  • 下载

ExpandableListView 点击和长按事件

  • 2016年08月19日 17:29
  • 18.93MB
  • 下载

Android ExpandableListView长按事件完美解决

关于ExpandableListView长按事件处理,网上很多都是使用将上下文菜单注册到ExpandableListView上实现长按事件。 这样做弊端显而易见,不够灵活,不能分别对父项、子项、父项之...
  • t5721654
  • t5721654
  • 2011年10月10日 00:02
  • 18379

ExpandableListView为child子列表添加长按事件(有部分内容是网上内容,但大部分是我自己的理解)

ExpandableListView设置子列表长按事件最好用简单的方法,网上找的用一些方法很多都有意外,这个没有!!...

ExpandableListView长按事件完美解决

关于ExpandableListView长按事件处理,网上很多都是使用将上下文菜单注册到ExpandableListView上实现长按事件。 这样做弊端显而易见,不够灵活,不能分别对父项、子项、...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ExpandableListView长按监听实现
举报原因:
原因补充:

(最多只允许输入30个字)