0

无法从可展开列表视图中的子项获取值。我在列表中有两个参数..

私人地图> ExpCollection;私人清单笔记本电脑;

并试图从价格 TextView 中的 getChildView() 和 setText() 中的 ExpCollection 中获取价值。它抛出空指针异常..

请帮忙...

适配器代码:-

public class ExpandableListAdapter extends BaseExpandableListAdapter {

    private Activity context;
    private Map<String, List<String>> ExpCollection;
    private List<String> laptops;


    public ExpandableListAdapter(Activity context, List<String> laptops,
            Map<String, List<String>> ExpCollection) {
        this.context = context;
        this.ExpCollection = ExpCollection;
        this.laptops = laptops;
    }

    public Object getChild(int groupPosition, int childPosition) {
        return ExpCollection.get(laptops.get(groupPosition)).get(childPosition);
    }

    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }

    public View getChildView(final int groupPosition, final int childPosition,
            boolean isLastChild, View convertView, ViewGroup parent) {
        final String laptop = (String) getChild(groupPosition, childPosition);

        LayoutInflater inflater = context.getLayoutInflater();

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.child_item, null);
        }
        TextView item = (TextView) convertView.findViewById(R.id.laptop);
        TextView price = (TextView) convertView.findViewById(R.id.runTime1);
        TextView discountPrice = (TextView) convertView.findViewById(R.id.runTime);
        System.out.println("ExpCollection******** "+ExpCollection.toString());
    //  price.setText(ExpCollection.get("price").toString());
        //discountPrice.setText(ExpCollection.get("discountPrice").toString());

        RelativeLayout delete = (RelativeLayout) convertView
                .findViewById(R.id.layout);

        item.setText(laptop);
        return convertView;
    }

    public int getChildrenCount(int groupPosition) {
        return ExpCollection.get(laptops.get(groupPosition)).size();
    }

    public Object getGroup(int groupPosition) {
        return laptops.get(groupPosition);
    }

    public int getGroupCount() {
        return laptops.size();
    }

    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    public View getGroupView(int groupPosition, boolean isExpanded,
            View convertView, ViewGroup parent) {
        String laptopName = (String) getGroup(groupPosition);
        if (convertView == null) {
            LayoutInflater infalInflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.group_item, null);
        }
        TextView item = (TextView) convertView.findViewById(R.id.laptop);
        item.setTypeface(null, Typeface.BOLD);
        item.setText(laptopName);
        return convertView;
    }

    public boolean hasStableIds() {
        return true;
    }

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

1 回答 1

0

使用以下内容:

        if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater)this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.child_item, null);
于 2013-10-04T09:42:44.563 回答