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;
			}
		});


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

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

ExpandableListView实现点击打开收起功能

Listview点击展开,显示详情。使用ExpandableListView可以轻松实现。网上有好多例子。但是出现了一个问题,当有多条数据,listview只显示一条。是因为listview的高设置的...

ExpandableListView的拖动重新分组-DropDrag

工作N年了,从来没写过什么博客,这是本人在CSDN中的处女作,从Java转到Android,的确有好多东西需要学习,而且还是自学。好,废话不多说,直接上代码 此功能是直接从项目中拷贝过来的,稍微做了一...

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

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

Android ExpandableListView长按事件完美解决

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

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

ExpandableListView设置子列表长按事件最好用简单的方法,网上找的用一些方法很多都有意外,这个没有!!
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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