版权声明:本文为博主原创文章,未经博主允许不得转载。
首先准备两个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
- import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
public class MainActivity extends Activity implements OnItemClickListener {
private List<String> list = new ArrayList<String>();
private List<String> listTag = new ArrayList<String>();
private String cityTags[];
private ListView listView1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getData();
listView1 = (ListView) findViewById(R.id.listView1);
listView1.setAdapter(new CityListAdapter(MainActivity.this, list, listTag));
listView1.setOnItemClickListener(this);
ListView listView2=(ListView)findViewById(R.id.listView2);
listView2.setAdapter(new MyBaseAdapter(MainActivity.this,cityTags));
listView2.setOnItemClickListener(this);
}
public void getData() {
String city_name_list[] = MainActivity.this.getResources()
.getStringArray(R.array.city_description_list);
String city_list_tag[] = MainActivity.this.getResources()
.getStringArray(R.array.city_group_list);
cityTags = new String[] { "热门", "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(cityTags[j - 1]);
listTag.add(cityTags[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]);
listTag.add(city_list_tag[i]);
}
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
switch (parent.getId()) {
case R.id.listView1:
boolean isLetter=false;
for(int i=0;i<cityTags.length;i++){
if(cityTags[i].equals(listTag.get(position))){
isLetter=true;
break;
}
}
if(!isLetter){
Toast.makeText(this, listTag.get(position), Toast.LENGTH_SHORT).show();
}
break;
case R.id.listView2:
for(int i=0;i<listTag.size();i++){
if(cityTags[position].equals(listTag.get(i))){
listView1.setSelection(i);
break;
}
}
break;
default:
break;
}
}
}
适配器中这样写:
其中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;
- }
- }
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class MyBaseAdapter extends BaseAdapter {
private Context context;
private String[] letter;
public MyBaseAdapter(Context context, String[] letter) {
super();
this.context = context;
this.letter = letter;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return letter.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return letter[position];
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view=LayoutInflater.from(context).inflate(R.layout.citylist_item, null);
TextView tv=(TextView)view.findViewById(R.id.group_list_item_text);
tv.setText(letter[position]);
return view;
}
}
xml 布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.yuekaolianxi2.MainActivity" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:scrollbars="none" >
</ListView>
<ListView
android:id="@+id/listView2"
android:layout_width="15dp"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_below="@+id/address_gps"
android:cacheColorHint="#00000000"
android:divider="@null"
android:scrollbars="none" >
</ListView>
</RelativeLayout>