ExpandableListView

问题描述:

我正在努力让Expandable List View旁边有图像和文字。我曾经最本例中的工作,而我在这里找到ExpandableListView

--->How to add image in expandable List in parent in 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); 
       } 
      }); 
+0

这是一个非常愚蠢的解决方案,我有错布局在那里我只是试图加快这一点expand_layout.xml假设是expand_child_layout.xml我只是忽略了它,我很抱歉 – thekevshow

+1

如果你认为它对未来的访问者有用,你应该发表你的评论作为答案或者干脆删除你的问题。 – Sam

“这是一个非常愚蠢的解决方案,我曾在那里的错误布局我只是想通过这一点。expand_layout.xml以速度为假设是expand_child_layout.xml