嗨所有我在这个主题上搜索了很多仍然无法解决这个问题。我在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;
}
});
答案 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()方法。