如题所述
æ£æ¥ä½ çæ°æ®å®ä¹ï¼è¿ç§åæ³æ¯é常å±é©çãæ们è¦ç¡®ä¿æ¯ä¸ªgroup itemé½æä¸ä¸ªå¯¹åºçchild listï¼è¿ä¸ªlist为空ï¼ä»£è¡¨è¯¥group item没æåæ¡ç®ãå¯æ¯ä½ çå®ä¹å¢ï¼å¦æå é¤äº"second"ï¼é£ä¹âthridâå°åºæ¯group1ï¼è¿æ¯group2çchildå¢ï¼ä»ä»£ç ä¸ç»ç©¶ï¼
private String [] groupStr={"第ä¸ç»","第äºç»","第ä¸ç»"};
private String [] childStr={"first","second","third"};
private List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
private List<Map<String, String>> childData = new ArrayList<Map<String, String>>();
@Override
public int getChildrenCount(int arg0) {
// è¿éçarg0ï¼ä»£è¡¨groupPositionï¼
// æ以ï¼å¦æä½ å é¤äºæ个childå ç´ ï¼å¿ ç¶å¯¼è´ä½ çchildDataågroupDataæ°éä¸å¯¹çã
// å½adapterè¯å¾ä¸ºgroup2è°ç¨è¿ä¸ªæ¹æ³æ¶ï¼å´©æºã
return childData.get(arg0).size();
}
@Override
public Object getChild(int arg0, int arg1) {
return childData.get(arg0);
// arg0代表groupPositionï¼arg1代表childPositionï¼
// å»ºè®®ä½ æè¿ä¸¤ä¸ªåæ°å称ä»arg*æ¹æææä¹çååã
// ä¿®æ¹äºchildDataçå®ä¹åï¼è¿ééè¦æ¹åæï¼
return childData.get(arg0).get(arg1);
}
é£ä¹ï¼æ£ç¡®çæ°æ®å®ä¹åadapteræ°æ®åå§ååºè¯¥æä¹åå¢ï¼çadapterçæé å¨ï¼
public SimpleExpandableListAdapter(
List<? extends Map<String, ?>> groupData,
List<? extends List<? extends Map<String, ?>>> childData) {}
(1) åºè¯¥åè¿æ ·å®ä¹child dataï¼List<? extends List<? extends Map<String, ?>>>
private List createChildLists(int groupCount) {
ArrayList result = new ArrayList();
for( int i = 0 ; i < groupCount ; i++ ) {
ArrayList secList = new ArrayList();
for( int n = 0 ; n < 3 ; n++ ) {
HashMap child = new HashMap();
child.put( "Sub Item", "Sub Item " + n );
secList.add( child );
}
result.add( secList );
}
return result;
}
(2) ç¶åè¿æ ·å é¤child itemï¼
List<Map<String, String>> childList = (List<Map<String, String>>)childData.get(groupPosition);
childList.remove(childPosition)
(3) åç¶å notifyDataSetChanged éç¥adapterå·æ°Viewã
private String [] groupStr={"第ä¸ç»","第äºç»","第ä¸ç»"};
private String [] childStr={"first","second","third"};
private List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
private List<Map<String, String>> childData = new ArrayList<Map<String, String>>();
@Override
public int getChildrenCount(int arg0) {
// è¿éçarg0ï¼ä»£è¡¨groupPositionï¼
// æ以ï¼å¦æä½ å é¤äºæ个childå ç´ ï¼å¿ ç¶å¯¼è´ä½ çchildDataågroupDataæ°éä¸å¯¹çã
// å½adapterè¯å¾ä¸ºgroup2è°ç¨è¿ä¸ªæ¹æ³æ¶ï¼å´©æºã
return childData.get(arg0).size();
}
@Override
public Object getChild(int arg0, int arg1) {
return childData.get(arg0);
// arg0代表groupPositionï¼arg1代表childPositionï¼
// å»ºè®®ä½ æè¿ä¸¤ä¸ªåæ°å称ä»arg*æ¹æææä¹çååã
// ä¿®æ¹äºchildDataçå®ä¹åï¼è¿ééè¦æ¹åæï¼
return childData.get(arg0).get(arg1);
}
é£ä¹ï¼æ£ç¡®çæ°æ®å®ä¹åadapteræ°æ®åå§ååºè¯¥æä¹åå¢ï¼çadapterçæé å¨ï¼
public SimpleExpandableListAdapter(
List<? extends Map<String, ?>> groupData,
List<? extends List<? extends Map<String, ?>>> childData) {}
(1) åºè¯¥åè¿æ ·å®ä¹child dataï¼List<? extends List<? extends Map<String, ?>>>
private List createChildLists(int groupCount) {
ArrayList result = new ArrayList();
for( int i = 0 ; i < groupCount ; i++ ) {
ArrayList secList = new ArrayList();
for( int n = 0 ; n < 3 ; n++ ) {
HashMap child = new HashMap();
child.put( "Sub Item", "Sub Item " + n );
secList.add( child );
}
result.add( secList );
}
return result;
}
(2) ç¶åè¿æ ·å é¤child itemï¼
List<Map<String, String>> childList = (List<Map<String, String>>)childData.get(groupPosition);
childList.remove(childPosition)
(3) åç¶å notifyDataSetChanged éç¥adapterå·æ°Viewã
温馨提示:答案为网友推荐,仅供参考