ExpandableListView长按监听实现

多级列表(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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值