在可扩展列表视图的子视图中出现错误

Getting error in child view of Expandable listview

我想在我的应用程序中使用 ExpandableListView。到现在为止一切正常,除了 childView。所有的子视图都与每一个父视图匹配。

public class AdTypesAdapter extends BaseExpandableListAdapter {

Context context;
public LayoutInflater minflater;
ArrayList<Q2_AdTypeList> adTypeList;

public AdTypesAdapter(Context context, ArrayList<Q2_AdTypeList> adTypeList) {
    // TODO Auto-generated constructor stub
    this.adTypeList = adTypeList;
    context = context;
}

public void setInflater(LayoutInflater mInflater, Context context) {
    this.minflater = mInflater;
    context = context;
}

@Override
public int getGroupCount() {
    // TODO Auto-generated method stub
    return adTypeList.size();
}

@Override
public int getChildrenCount(int groupPosition) {
    // TODO Auto-generated method stub
    return adTypeList.size();
}

@Override
public Object getGroup(int groupPosition) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public Object getChild(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return adTypeList.get(childPosition);
}

@Override
public long getGroupId(int groupPosition) {
    // TODO Auto-generated method stub
    return groupPosition;
}

@Override
public long getChildId(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return childPosition;
}

@Override
public boolean hasStableIds() {
    // TODO Auto-generated method stub
    return false;
}

@Override
public View getGroupView(int groupPosition, boolean isExpanded,
        View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = minflater.inflate(R.layout.ad_details_parent_layout,
                null);
    }

    TextView noOfImpressions_textView = (TextView) convertView
            .findViewById(R.id.noOfImpressions_textView);
    TextView amount_textView = (TextView) convertView
            .findViewById(R.id.amount_textView);
    noOfImpressions_textView.setText(String.valueOf(adTypeList.get(
            groupPosition).getAdvImpression()));
    amount_textView.setText("$"
            + String.valueOf(adTypeList.get(groupPosition).getAdvPrice()));

    // ((TextView) convertView).setChecked(isExpanded);
    return convertView;
}

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

    TextView adDesc_textView = null;
    if (convertView == null) {
        convertView = minflater.inflate(R.layout.ad_details_child_layout,
                null);
    }
    adDesc_textView = (TextView) convertView
            .findViewById(R.id.adDesc_textView);

    adDesc_textView.setText(adTypeList.get(childPosition).getAdvDesc());
    return convertView;
}

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return false;
}

}

这里的 adTypeList 包含父视图和子视图的数据![ 我想准确地了解图像中的内容。但是我在输出中得到的是我拥有的子视图总数附加到每个父视图]1

我认为你的 getChildrenCount 应该总是 return 1 基于你的数据模型(每个 parent 正好有 1 child)

@Override
public int getChildrenCount(int groupPosition)
{
    return 1;
}

通过 returning adTypeList.size() 你基本上说位置 groupPosition 的组有 adTypeList.size() children.