0

我正在努力Expandable List View让它旁边有图像和文字。我有这个例子的大部分工作,我在这里找到了

--->如何在 android 的父级扩展列表中添加图像?

但我不断得到一个Error

01-07 22:42:26.182: E/AndroidRuntime(28475):    at gui.ExpandActivity$1.getChildView(ExpandActivity.java:115)
01-07 22:42:26.182: E/AndroidRuntime(28475):    at android.widget.ExpandableListConnector.getView(ExpandableListConnector.java:450)

有什么想法吗?谢谢。

// Construct Expandable List
            final String NAME = "name";
            final String IMAGE = "image";
            final LayoutInflater layoutInflater = (LayoutInflater) this
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            final ArrayList<HashMap<String, String>> headerData = new ArrayList<HashMap<String, String>>();

            final HashMap<String, String> group1 = new HashMap<String, String>();
            group1.put(NAME, "Group 1");
            headerData.add(group1);

            final HashMap<String, String> group2 = new HashMap<String, String>();
            group2.put(NAME, "Group 2");
            headerData.add(group2);

            final ArrayList<ArrayList<HashMap<String, Object>>> childData = new ArrayList<ArrayList<HashMap<String, Object>>>();

            final ArrayList<HashMap<String, Object>> group1data = new ArrayList<HashMap<String, Object>>();
            childData.add(group1data);

            final ArrayList<HashMap<String, Object>> group2data = new ArrayList<HashMap<String, Object>>();
            childData.add(group2data);

            // Set up some sample data in both groups
            for (int i = 0; i < 10; ++i) {
                final HashMap<String, Object> map = new HashMap<String, Object>();
                map.put(NAME, "Child " + i);
                map.put(IMAGE,
                        getResources().getDrawable(R.drawable.ic_launcher));
                (i % 2 == 0 ? group1data : group2data).add(map);
            }

            setListAdapter(new SimpleExpandableListAdapter(this,
                    headerData, android.R.layout.simple_expandable_list_item_1,
                    new String[] { NAME }, // the name of the field data
                    new int[] { android.R.id.text1 }, // the text field to
                                                        // populate with the
                                                        // field data
                    childData, 0, null, new int[] {}) {
                @Override
                public View getChildView(int groupPosition, int childPosition,
                        boolean isLastChild, View convertView, ViewGroup parent) {
                    final View v = super.getChildView(groupPosition,
                            childPosition, isLastChild, convertView, parent);

                    // Populate your custom view here
                    // ((TextView) v.findViewById(R.id.name))
                    // .setText((String) ((HashMap<String, Object>) getChild(
                    // groupPosition, childPosition)).get(NAME));
                    // ((ImageView) v.findViewById(R.id.image))
                    // .setImageDrawable((Drawable) ((HashMap<String, Object>)
                    // getChild(
                    // groupPosition, childPosition)).get(IMAGE));

                    ((TextView) v.findViewById(R.id.name))
                            .setText("This should be child one corrent?");
                    // ((ImageView) v.findViewById(R.id.image))
                    // .setImageDrawable((Drawable) getResources()
                    // .getDrawable(R.drawable.ic_launcher));

                    return v;
                }

                @Override
                public View newChildView(boolean isLastChild, ViewGroup parent) {
                    return layoutInflater.inflate(R.layout.expand_layout,
                            null, false);
                }
            });
4

1 回答 1

1

“这是一个非常愚蠢的解决方案,我在那里的布局错误,我只是想加快速度。expand_layout.xml应该是expand_child_layout.xml

于 2013-05-04T12:23:37.963 回答