尝试了多次,可能是自己的代码问题。布置为啥当在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;
}