Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 城市列表ListView 之 按首字母分組

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

編輯:關於Android編程


首先准備兩個Array:一個是城市TAg,另一個是城市Name
[html] 
<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> 
[html] 
<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
[java] 
private List<String> list = new ArrayList<String>(); 
private List<String> listTag = new ArrayList<String>(); 
[java]
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]); 
span style="white-space:pre">               </span>//city_group.add(city_list_tag[i]); 
        } 
    } 

適配器中這樣寫:
其中return super.isEnabled(position);設置城市首字母標示不可選
[java]
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; 
    } 

 


 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved