ExpandableListView长按监听实现

来源:互联网 发布:淘宝工具中的兼职赚钱 编辑:程序博客网 时间:2024/05/22 02:13

多级列表(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() {@Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubint 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;}});


0 0
原创粉丝点击