@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { TextView textView = null; //ÕâÀïÅжÏconvertViewÊÇ·ñΪ¿Õ£¬ÊÇΪÁËËüµÄ¸´Ó㬸ã¸ßÐÔÄÜ if(convertView==null) { //²úÉúÒ»¸öTextView×é¼þ textView = getGenericView(); //ÉèÖÃËüµÄÎı¾ÄÚÈÝ textView.setText(getChild(groupPosition, childPosition).toString()); } else { textView = (TextView)convertView; textView.setText(getChild(groupPosition, childPosition).toString()); } return textView; } /**
* µÃµ½Ó¦Ò»¼¶ÁбíÏîµÄ×ÓÁбíÏî¸öÊý
* @param groupPositionÒ»¼¶ÁбíµÄË÷ÒýÖµ * @return ¶ÔÓ¦¶þ×é¼¶Áбí¸öÊý */
@Override
public int getChildrenCount(int groupPosition) { return childs[groupPosition].length; } /**
* ÓÉÒ»¼¶ÁбíË÷ÒýÖµgroupPositionµÃµ½Ò»¼¶ÁбíµÄÏîµÄÄÚÈÝ * @return Ò»¼¶ÁбíÏîÄÚÈÝ */
@Override
public Object getGroup(int groupPosition) { return groups[groupPosition]; } /**
* Ò»×éÁбíµÄ¸öÊý
* @return ·µ»ØÒ»¼¶Áбí¸öÊý */
@Override
public int getGroupCount() { return groups.length; } /**
33
* µÃµ½Ò»¼¶ÁбíID,¼´Ë÷ÒýÖµ
* @param groupPositionΪһ¼¶ÁбíµÄË÷ÒýÖµ * @return Ò»¼¶ÁбíID£¬´Ó0¿ªÊ¼ */
@Override
public long getGroupId(int groupPosition) { return groupPosition; } /**
* @return Ò»¼¶Áбí¶ÔÓ¦µÄView¶ÔÏóʵÀý */
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { TextView textView = null; if(convertView==null){ textView = getGenericView(); textView.setText(getGroup(groupPosition).toString()); }else { textView = (TextView)convertView; textView.setText(getGroup(groupPosition).toString()); } return textView; }
@Override
public boolean hasStableIds() { return true; } /**
* ÅжÏÖ¸¶¨µÄ¶þ×éÑ¡ÏîÊÇ·ñ¿ÉÑ¡
* @param groupPosition Ò»¼¶ÁбíÏîË÷ÒýÖµ * @param childPosition ¶þ¼¶ÁбíÏîË÷ÒýÖµ * @return ²¼¶ûÐÍ */
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } /**
* ²úÉúÒ»¸öTextView¶ÔÏóʵÀý * @return Ò»¸öTextView×é¼þʵÀý */
34
private TextView getGenericView() { AbsListView.LayoutParams lp = new AbsListView.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, 48); TextView textView = new TextView(context); textView.setLayoutParams(lp); textView.setTextSize(18); textView.setTextColor(Color.WHITE); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); textView.setPadding(32, 0, 0, 0); return textView; } /**
* ·µ»Ø´ËÉìËõÐÔÁбíµÄ¹ýÂËÆ÷ * @return Filter Ò»¸ö¹ýÂËÆ÷¶ÔÏó */
@Override
public Filter getFilter() { if(filter == null) { filter = new CityFilter(); } return filter; }
private class CityFilter extends Filter { /** * ÓÉÌõ¼þ×Ö·û´®À´¹ýÂËÁÐ±í£¬·µ»Ø¹ýÂ˺óµÄ½á¹û·â×°¶ÔÏóFilterResults * @param constraint ¹ýÂ˵ÄÌõ¼þ×Ö·û´® * @return Ò»¸ö·â×°¹ýÂ˵Ľá¹ûÀà */ @Override protected FilterResults performFiltering(CharSequence constraint) { FilterResults results = new FilterResults(); //ÓÃÓÚ´æ·Å·ûºÏÌõ¼þµÄÊ¡·ÝË÷ÒýÖµ£¬¸÷ÓëÖ®¶ÔӦƥÅäµÄ³ÇÊÐ Map 35 index.add(j); } values.put(i, index); } } else { String filterStr = constraint.toString(); for(int i=0; i * ½âÎö¹ýÂ˵õ½µÄ½á¹ûresults£¬¸üÐÂÊÊÅäÆ÷µÄÁбíÊý¾Ý * @param constraint ¹ýÂËÌõ¼þ * @param results ¹ýÂ˵õ½µÄ½á¹û */ @SuppressWarnings(\ 36