ExpandableListView OnChildClickListener 失效解决

来源:互联网 发布:c语言 stdio 编辑:程序博客网 时间:2024/05/28 11:29

尝试了多次,可能是自己的代码问题。布置为啥当在ExpandableListView 的子item中加入button后,子item便不能被响应点击事件


//isChildSelectable 已设置为true

 public boolean isChildSelectable(int groupPosition, int childPosition) {        return true;    }
lvCity.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {            @Override            public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {                Log.e("test", "---child item 被点击了---->" );                return false;            }        });
发现子item是不能响应点击事件的
没找出原因,求帮助
最后用其他方法实现:
直接在 <span style="font-family: 宋体; font-size: 10.5pt; background-color: rgb(228, 228, 255);">getChildView 方法中对convertview进行监听操作,便可以了</span>
<pre name="code" class="java">   @Override    public View getChildView(int groupPosition,  int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {        ViewHolder_child vh_child;         ChildInfo childInfo;        if (convertView==null){            childInfo =new ChildInfo();            convertView =inflater.inflate(R.layout.citylist_childitem,null);            vh_child=new ViewHolder_child();            vh_child.tv_child= (TextView) convertView.findViewById(R.id.tv_cityname);            vh_child.childButton= (Button) convertView.findViewById(R.id.childButton);            vh_child.childButton.setTag(childInfo);//绑定子item的位置信息            convertView.setTag(vh_child);        }else{            vh_child= (ViewHolder_child) convertView.getTag();            childInfo = (ChildInfo) vh_child.childButton.getTag();        }        vh_child.tv_child.setText(map.get(arrayList_group.get(groupPosition)).get(childPosition));        convertView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                ChildInfo childInfo= (ChildInfo) v.findViewById(R.id.childButton).getTag();                Log.e("test", "---child item 被点击了---->"+map.get(arrayList_group.get(childInfo.groupPosition)).get(childInfo.childPosition) );            }        });        childInfo.childPosition=childPosition;        childInfo.groupPosition=groupPosition;//        button设置点击事件        vh_child.childButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                ChildInfo childInfo= (ChildInfo) v.getTag();                Toast.makeText(context,map.get(arrayList_group.get(childInfo.groupPosition)).get(childInfo.childPosition),Toast.LENGTH_SHORT).show();            }        });        return convertView;    }    class ViewHolder_group{        TextView tv_group;    }    class ViewHolder_child{        TextView tv_child;        Button  childButton;    }    //存储子item的位置信息    class ChildInfo{        int groupPosition;        int childPosition;    }





0 0
原创粉丝点击