Android 单击ExpandableListView中的子项或复选框时未获取子项位置/组位置

Android 单击ExpandableListView中的子项或复选框时未获取子项位置/组位置,android,expandablelistview,Android,Expandablelistview,我正在尝试创建ExpandableListView,其中每个孩子都有一个复选框,每个组都有TextView,以后我想在其中输出文本,所选孩子的数量占总数的比例(例如,3/26)。现在,我只是尝试获取单击的子对象的groupPosition和childPosition,或者子视图中的复选框。但当我点击它们时——什么也没发生,我没有得到任何日志记录,也没有Toast消息 以下是我的适配器代码: @Override public View getChildView(int groupPosition,

我正在尝试创建ExpandableListView,其中每个孩子都有一个复选框,每个组都有TextView,以后我想在其中输出文本,所选孩子的数量占总数的比例(例如,3/26)。现在,我只是尝试获取单击的子对象的groupPosition和childPosition,或者子视图中的复选框。但当我点击它们时——什么也没发生,我没有得到任何日志记录,也没有Toast消息

以下是我的适配器代码:

@Override
public View getChildView(int groupPosition, int childPosition,
        boolean isLastChild, View convertView, ViewGroup parent) {

    final ChildHolder child_holder;

    if(convertView == null)
    {
        convertView = LayoutInflater.from(context).inflate(R.layout.row_base_item_selected, null);
        child_holder = new ChildHolder();
        child_holder.tv_bi_name = (TextView) convertView.findViewById(R.id.tv_base_item_name_selected);
        child_holder.chb_selected = (CheckBox) convertView.findViewById(R.id.chb_selected);
        convertView.setTag(child_holder);
    } else {
        child_holder = (ChildHolder) convertView.getTag();
    }

    final Group group = arr_groups.get(groupPosition);
    final Base_Item base_item = group.getGroup_items().get(childPosition);

    if(base_item!=null)
    {
        child_holder.tv_bi_name.setText(base_item.getItem_name());
        if(base_item.isBase_item_selected())
        {
            child_holder.chb_selected.setSelected(true);
        }
    }

    return convertView;
}

@Override
public View getGroupView(int groupPosition, boolean isExpanded,
        View convertView, ViewGroup parent) {

    final Group group = arr_groups.get(groupPosition);

    convertView = inflater.inflate(R.layout.row_group, parent, false);
    ((TextView)convertView.findViewById(R.id.tv_category_name)).setText(group.getGroup_name());
    ImageView img_add = (ImageView) convertView.findViewById(R.id.img_add_category);
    img_add.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            mListener.onImageClicked(group.getGroup_id());
        }
    });

    return convertView;
}

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    return true;
}

class GroupHolder{
    TextView tv_group_name;
    TextView tv_items_counter;
}

class ChildHolder{
    TextView tv_bi_name;
    CheckBox chb_selected;
}
这是活动代码:

Task_DB_Manager manager;
ArrayList<Group> arr_all_groups;
Add_Edit_Trip_Expandable_ListView_Adapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_edit_trip_relative);

    lv_trip_list     = (ExpandableListView) findViewById(R.id.elv_trip_list);

    manager = new Task_DB_Manager(this);

    populate_list();
}

private void populate_list()
{
    arr_all_groups = manager.get_all_groups();

    adapter = new Add_Edit_Trip_Expandable_ListView_Adapter(this, arr_all_groups);
    lv_trip_list.setAdapter(adapter);
    lv_trip_list.setOnChildClickListener(new OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View v,
                int groupPosition, int childPosition, long id) {
            Log.e("Group position :: "+groupPosition, " &&   Child position :: "+childPosition);
            Toast.makeText(Activity_Add_Edit_Trip.this, "Group position :: "+groupPosition+"\nChild position :: "+childPosition, Toast.LENGTH_SHORT).show();
            return false;
        }
    });
    set_image_click_listener();
}
任务管理器;
ArrayList arr_all_组;
添加\编辑\跳闸\可扩展\列表视图\适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u add\u edit\u trip\u relative);
低压跳闸列表=(可扩展列表视图)findViewById(R.id.elv跳闸列表);
经理=新任务\数据库\经理(此);
填充_列表();
}
私有无效填充列表()
{
arr_all_groups=manager.get_all_groups();
适配器=新添加\编辑\跳闸\可扩展\列表视图\适配器(此,arr \所有\组);
低压跳闸列表。设置适配器(适配器);
lv\u trip\u list.setOnChildClickListener(新的OnChildClickListener(){
@凌驾
公共布尔onChildClick(ExpandableListView父视图,视图v,
int groupPosition、int childPosition、long id){
Log.e(“组位置::”+groupPosition,&&Child位置:“+childPosition”);
Toast.makeText(活动添加编辑Trip.this,“组位置:”+groupPosition+“\n文件位置:”+childPosition,Toast.LENGTH\u SHORT).show();
返回false;
}
});
设置_图像_单击_侦听器();
}
为什么我不能得到childPosition和groupPosition?

好的,找到了一个答案:

显然,我必须为XML中的复选框设置以下内容:

android:focusable="false"