Android:如何在ExpandableListView中获得子项单击

Android:如何在ExpandableListView中获得子项单击,android,expandablelistview,Android,Expandablelistview,我有一个extands BaseExpandableListAdapter的ExpandableListView 我想在单击任何子对象时将视图添加到子对象 单击时,如何获取孩子的正确位置?(或者如何向其中再添加一个子项)。public void onCreate(Bundle savedInstanceState){ 试一试{ super.onCreate(savedInstanceState); setContentView(R.layout.main); SimpleExpandableLi

我有一个extands BaseExpandableListAdapter的ExpandableListView

我想在单击任何子对象时将视图添加到子对象

单击时,如何获取孩子的正确位置?(或者如何向其中再添加一个子项)。

public void onCreate(Bundle savedInstanceState){
试一试{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SimpleExpandableListAdapter解释适配器=
新的SimpleExpandableListAdapter(
这
createGroupList(),//正在创建组列表。
R.layout.group_行,//组项布局XML。
新字符串[]{“组项”},//组项的键。
new int[]{R.id.row_name},//每个组项的id。-键下的数据进入此文本视图。
createChildList(),//childData描述二级条目。
R.layout.child_行,//子级条目的布局(第二级)。
新字符串[]{“子项”},//要显示的childData映射中的键。
上面键下的新int[]{R.id.grp_child}//数据进入这些文本视图。
);
setListAdapter(expListAdapter);//在列表中设置适配器。
}捕获(例外e){
System.out.println(“Errrr++”+e.getMessage());
}
}
/*为行创建Hashmap*/
@抑制警告(“未选中”)
私有列表createGroupList(){
ArrayList结果=新建ArrayList();
对于(int i=0;i<15;++i){//15组。。。。。。。。
HashMap m=新的HashMap();
m、 put(“组项”,“组项”+i);//键及其值。
结果:添加(m);
}
返回(列表)结果;
}
/*为孩子们创建HashMap*/
@抑制警告(“未选中”)
私有列表createChildList(){
ArrayList结果=新建ArrayList();
对于(inti=0;i<15;++i){//this-15是组数(这里是15)
/*每个组都需要每个HashMap。对于每个组,我们有3个子组*/
ArrayList secList=新的ArrayList();
对于(int n=0;n<3;n++){
HashMap child=新的HashMap();
“子项”、“子项”+n);
secList.add(子项);
}
结果。添加(secList);
}        
返回结果;
}
内容更改时的公共无效(){
System.out.println(“onContentChanged”);
super.onContentChanged();
}
/*每次单击子项时都会调用此函数*/
公共布尔onChildClick(ExpandableListView父视图、视图v、int-groupPosition、int-childPosition、长id){
System.out.println(“在groupPosition=“+groupPosition+”子对象在位置“+childPosition”处单击的内部onChildClick”);
返回true;
}
/*此函数在组扩展时调用*/
public void onGroupExpand(int groupPosition){
试一试{
System.out.println(“组扩展侦听器=>groupPosition=“+groupPosition”);
}捕获(例外e){
System.out.println(“grouppositionerrrr++”+e.getMessage());
}
}  

对于仍在寻找这个问题的人,我发现答案是:

listView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {

            ExpandableListAdapter eListAdapter = (ExpandableListAdapter)parent.getExpandableListAdapter();
            ListItem item = (ListItem)eListAdapter.getChild(groupPosition, childPosition);
            return true;
        }
    });

这与
onChildClick(ExpandableListView父级、视图v、int-groupPosition、int-childPosition、long-id)
a组在“@Override public View getChildView(int-groupPosition、int-childPosition、boolean isLastChild、View-convertView、ViewGroup-parent){}”方法中有“isExpanded”布尔变量一样明显。。子视图中是否存在任何变量?如果XaandableListView只有1级可扩展,则必须实现自己的NestedExpandableListview…您知道如何获取活动子视图?如何定义活动子视图?
listView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {

            ExpandableListAdapter eListAdapter = (ExpandableListAdapter)parent.getExpandableListAdapter();
            ListItem item = (ListItem)eListAdapter.getChild(groupPosition, childPosition);
            return true;
        }
    });