Android 城市列表ListView 之 按首字母分组

来源:互联网 发布:pyqt 安装 mac 编辑:程序博客网 时间:2024/05/16 02:45

首先准备两个Array:一个是城市TAg,另一个是城市Name

<string-array name="city_group_list">        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>热门</item>        <item>A</item>        <item>A</item>        <item>A</item>        <item>A</item>        <item>A</item>        <item>B</item>        <item>B</item>        <item>B</item>        <item>B</item>        <item>B</item>        <item>B</item>        <item>C</item>        <item>C</item>        <item>C</item>        <item>C</item>        <item>C</item>        <item>C</item>        <item>C</item>        <item>C</item>        <item>C</item>        <item>D</item>        <item>D</item>        <item>D</item>        <item>D</item>        <item>D</item>        <item>D</item>        <item>D</item>        <item>E</item>        <item>F</item>        <item>F</item>        <item>F</item>        <item>G</item>        <item>G</item>        <item>G</item>        <item>G</item>        <item>G</item>        <item>G</item>        <item>H</item>        <item>H</item>        <item>H</item>        <item>H</item>        <item>H</item>        <item>H</item>        <item>H</item>        <item>H</item>        <item>H</item>        <item>H</item>        <item>H</item>        <item>H</item>        <item>H</item>        <item>J</item>        <item>J</item>        <item>J</item>        <item>J</item>        <item>J</item>        <item>J</item>        <item>J</item>        <item>J</item>        <item>J</item>        <item>J</item>        <item>J</item>        <item>J</item>        <item>J</item>        <item>K</item>        <item>K</item>        <item>K</item>        <item>K</item>        <item>K</item>        <item>L</item>        <item>L</item>        <item>L</item>        <item>L</item>        <item>L</item>        <item>L</item>        <item>L</item>        <item>L</item>        <item>M</item>        <item>M</item>        <item>M</item>        <item>M</item>        <item>M</item>        <item>N</item>        <item>N</item>        <item>N</item>        <item>N</item>        <item>N</item>        <item>N</item>        <item>N</item>        <item>Q</item>        <item>Q</item>        <item>Q</item>        <item>Q</item>        <item>Q</item>        <item>Q</item>        <item>Q</item>        <item>S</item>        <item>S</item>        <item>S</item>        <item>S</item>        <item>S</item>        <item>S</item>        <item>S</item>        <item>S</item>        <item>S</item>        <item>S</item>        <item>T</item>        <item>T</item>        <item>T</item>        <item>T</item>        <item>T</item>        <item>T</item>        <item>W</item>        <item>W</item>        <item>W</item>        <item>W</item>        <item>W</item>        <item>W</item>        <item>W</item>        <item>W</item>        <item>W</item>        <item>W</item>        <item>W</item>        <item>X</item>        <item>X</item>        <item>X</item>        <item>X</item>        <item>X</item>        <item>X</item>        <item>X</item>        <item>Y</item>        <item>Y</item>        <item>Y</item>        <item>Y</item>        <item>Y</item>        <item>Y</item>        <item>Y</item>        <item>Y</item>        <item>Y</item>        <item>Y</item>        <item>Y</item>        <item>Z</item>        <item>Z</item>        <item>Z</item>        <item>Z</item>        <item>Z</item>        <item>Z</item>        <item>Z</item>        <item>Z</item>        <item>Z</item>    </string-array>
    <string-array name="city_description_list">        <item>北京首都</item>        <item>上海虹桥</item>        <item>上海浦东</item>        <item>广州</item>        <item>深圳</item>        <item>香港</item>        <item>澳门</item>        <item>天津</item>        <item>成都</item>        <item>重庆</item>        <item>南京</item>        <item>青岛</item>        <item>珠海</item>        <item>福州</item>        <item>哈尔滨</item>        <item>大连</item>        <item>海口</item>        <item>沈阳</item>        <item>厦门</item>        <item>安庆</item>        <item>鞍山</item>        <item>阿克苏</item>        <item>阿勒泰</item>        <item>安康</item>        <item>北京首都</item>        <item>北京南苑</item>        <item>保山</item>        <item>包头</item>        <item>北海</item>        <item>蚌埠</item>        <item>重庆</item>        <item>成都</item>        <item>长沙</item>        <item>长春</item>        <item>常德</item>        <item>长治</item>        <item>常州</item>        <item>朝阳</item>        <item>赤峰</item>        <item>大连</item>        <item>敦煌</item>        <item>大理</item>        <item>达县</item>        <item>东营</item>        <item>丹东</item>        <item>大同</item>        <item>恩施</item>        <item>福州</item>        <item>阜阳</item>        <item>富蕴</item>        <item>广州</item>        <item>桂林</item>        <item>贵阳</item>        <item>格尔木</item>        <item>广汉</item>        <item>赣州</item>        <item>海口</item>        <item>哈尔滨</item>        <item>杭州</item>        <item>合肥</item>        <item>黄山</item>        <item>呼和浩特</item>        <item>海拉尔</item>        <item>哈密</item>        <item>汉中</item>        <item>黑河</item>        <item>衡阳</item>        <item>和田</item>        <item>黄岩</item>        <item>吉林</item>        <item>济南</item>        <item>九江</item>        <item>九寨黄龙</item>        <item>吉安</item>        <item>佳木斯</item>        <item>嘉峪关</item>        <item>济宁</item>        <item>景德镇</item>        <item>景洪</item>        <item>晋江</item>        <item>锦州</item>        <item>酒泉</item>        <item>昆明</item>        <item>克拉玛依</item>        <item>喀什</item>        <item>库尔勒</item>        <item>库车</item>        <item>洛阳</item>        <item>兰州</item>        <item>拉萨</item>        <item>连云港</item>        <item>丽江</item>        <item>临沂</item>        <item>柳州</item>        <item>泸州</item>        <item>芒市</item>        <item>梅县</item>        <item>绵阳</item>        <item>牡丹江</item>        <item>满洲里</item>        <item>南京</item>        <item>宁波</item>        <item>南昌</item>        <item>南宁</item>        <item>南通</item>        <item>南充</item>        <item>南阳</item>        <item>青岛</item>        <item>秦皇岛</item>        <item>齐齐哈尔</item>        <item>泉州</item>        <item>衢州</item>        <item>且末</item>        <item>庆阳</item>        <item>沈阳</item>        <item>深圳</item>        <item>上海虹桥</item>        <item>上海浦东</item>        <item>汕头</item>        <item>石家庄</item>        <item>苏州</item>        <item>三亚</item>        <item>沙市</item>        <item>思茅</item>        <item>天津</item>        <item>塔城</item>        <item>太原</item>        <item>通化</item>        <item>通辽</item>        <item>铜仁</item>        <item>温州</item>        <item>武汉</item>        <item>武汉王家</item>        <item>无锡</item>        <item>乌鲁木齐</item>        <item>威海</item>        <item>梧州</item>        <item>万县</item>        <item>潍坊</item>        <item>乌兰浩特</item>        <item>武夷山</item>        <item>厦门</item>        <item>徐州</item>        <item>西安</item>        <item>西宁</item>        <item>西昌</item>        <item>襄樊</item>        <item>锡林浩特</item>        <item>银川</item>        <item>延安</item>        <item>延吉</item>        <item>烟台</item>        <item>盐城</item>        <item>宜宾</item>        <item>宜昌</item>        <item>伊宁</item>        <item>义乌</item>        <item>永州</item>        <item>榆林</item>        <item>珠海</item>        <item>昭通</item>        <item>张家界</item>        <item>湛江</item>        <item>芷江</item>        <item>中甸</item>        <item>舟山</item>        <item>遵义</item>        <item>郑州</item>    </string-array>

在Activity中声明两个List,然后读取数据到list

private List<String> list = new ArrayList<String>();private List<String> listTag = new ArrayList<String>();
public void getData() {String city_name_list[] = CityListActivity.this.getResources().getStringArray(R.array.city_description_list);String city_list_tag[] = CityListActivity.this.getResources().getStringArray(R.array.city_group_list);// ///////////////////////////String cityTag[] = { "热门", "A", "B", "C", "D", "E", "F", "G", "H", "J","K", "L", "M", "N", "Q", "S", "T", "W", "X", "Y", "Z" };int listsize[] = { 0, 19, 5, 6, 9, 7, 1, 3, 6, 13, 13, 5, 8, 5, 7, 7,10, 6, 11, 7, 11, 9 };for (int j = 1; j < listsize.length; j++) {list.add(cityTag[j - 1]);listTag.add(cityTag[j - 1]);listsize[j] = listsize[j - 1] + listsize[j];for (int i = listsize[j - 1]; i < listsize[j]; i++) {list.add(city_name_list[i]);// System.out.println(city_list_tag[i]);//city_group.add(city_list_tag[i]);}}}

适配器中这样写:

其中return super.isEnabled(position);设置城市首字母标示不可选

public class CityListAdapter extends ArrayAdapter<String>{        private List<String> listTag = null;    public CityListAdapter(Context context, List<String> objects, List<String> tags) {        super(context, 0, objects);        this.listTag = tags;    }         @Override    public boolean isEnabled(int position) {        if(listTag.contains(getItem(position))){            return false;        }        return super.isEnabled(position);    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        View view = convertView;        if(listTag.contains(getItem(position))){            view = LayoutInflater.from(getContext()).inflate(R.layout.citylist_tag, null);        }else{                                view = LayoutInflater.from(getContext()).inflate(R.layout.citylist_item, null);        }        TextView textView = (TextView) view.findViewById(R.id.group_list_item_text);        textView.setText(getItem(position));        return view;    }}





原创粉丝点击