ExpandableListView ParentPosition没有得到

时间:2013-07-31 08:14:08

标签: android expandablelistview

嗨所有我在这个主题上搜索了很多仍然无法解决这个问题。我在android中很新。我没有在我的ExpandableListView中获得Parent的位置,我得到了childPosition的值而不是groupposition。

                catlist = (ExpandableListView) findViewById(R.id.category_list);
            final ExpandableListAdapter expListAdapter = new ExpandableListAdapter(
                    CatergoryActivity.this, groupList, expandableCategories);
            catlist.setAdapter(expListAdapter);

            catlist.setOnChildClickListener(new OnChildClickListener() {

                @Override
                public boolean onChildClick(ExpandableListView parent,
                        View v, int groupPosition, int childPosition,
                        long id) {
                    Intent nextact = new Intent(CatergoryActivity.this,
                            MobileActivity.class);

                    String childPosition = expListAdapter.getChild(groupPosition, childPosition);

                    System.out.println("childPosition------------------------>>>>>>>>>>>>"+childPosition);


                    nextact.putExtra("locId", locId);
                    nextact.putExtra("childpos",
                            childList.get(childPosition));
                    nextact.putExtra("grouppos", gruopPosition);

                    startActivity(nextact);
                    return false;
                }
            });

1 个答案:

答案 0 :(得分:0)

根据onChildClick的api参考描述,您已经拥有父组的位置。

  

public abstract boolean onChildClick(ExpandableListView parent,View v,int groupPosition,int childPosition,long id)    在API级别1中添加

     

单击此可展开列表中的子项时要调用的回调方法。

     

参数

     
      
  • parent - 发生点击的ExpandableListView
  •   
  • v - 已单击的可展开列表/ ListView中的视图
  •   
  • groupPosition - 包含已点击的子项的组位置
  •   
  • childPosition - 群组中的子位置
  •   
  • id - 单击的子项的行ID
  •   

返回 如果处理了点击,则为True

<强>编辑: onChildClick中有两个位置 - parent child 。 父定义组的位置,子定义组内的位置。 adapter.getChild(groupPos,childPos)返回与指定子项相关的对象。

    catlist.setOnChildClickListener(new OnChildClickListener() {

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

                System.out.println("childPosition: " + childPosition);
                System.out.println("groupPosition: " + groupPosition);

                // only if you need related data
                Object itemData = expListAdapter.getChild(groupPosition, childPosition);


            }
        });

如果您需要获取此itemData值,则应在适配器中实现getChild()方法。