public class MainActivity extends Activity implements OnItemClickListener {
String[] letter = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K",
"L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X",
"Y", "Z" };
String[] city = { "C", "B", "H", "G", "W", "C", "S", "S", "C", "W", "H",
"Z", "C", "D", "N", "L", "Q", "S", "S", "L", "N", "H", "X", "H",
"S", "Z", "G", "N", "J", "T", "S", "X", "A" };
String[] cityName = { "长沙", "北京", "杭州", "广州", "武汉", "重庆", "上海", "深圳", "长春",
"乌鲁木齐", "哈尔滨", "郑州", "成都", "大连", "南昌", "兰州", "齐齐哈尔", "汕头", "苏州",
"拉萨", "南京", "呼和浩特", "厦门", "合肥", "沈阳", "张家界", "贵州", "宁夏", "济南",
"天津", "石家庄", "西安", "澳门" };
List<String> list = new ArrayList<>();
private ListView left_lv;
private ListView right_lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for (int i = 0; i < letter.length; i++) {
boolean flag = false;
for (int j = 0; j < city.length; j++) {
if(letter[i].equals(city[j])){
if(!flag){
flag =true;
list.add(letter[i]);
}
list.add(cityName[j]);
}
}
}
left_lv = (ListView) findViewById(R.id.left_lv);
right_lv = (ListView) findViewById(R.id.right_lv);
left_lv.setAdapter(new leftAdapter());
right_lv.setAdapter(new RightAdapter());
left_lv.setOnItemClickListener(this);
right_lv.setOnItemClickListener(this);
}
class leftAdapter extends BaseAdapter {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public int getItemViewType(int position) {
for (int i = 0; i < letter.length; i++) {
if(letter[i].equals(list.get(position))){
return 0;
}
}
return 1;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
if(convertView==null){
switch (type) {
case 0:
convertView =View.inflate(MainActivity.this, R.layout.left_item1, null);
break;
case 1:
convertView =View.inflate(MainActivity.this, R.layout.left_item2, null);
break;
}
}
TextView left_item1_tv = (TextView) convertView.findViewById(R.id.left_item1_tv);
TextView left_item2_tv = (TextView) convertView.findViewById(R.id.left_item2_tv);
switch (type) {
case 0:
left_item1_tv.setText(list.get(position));
break;
case 1:
left_item2_tv.setText(list.get(position));
break;
}
return convertView;
}
}
class RightAdapter extends BaseAdapter {
@Override
public int getCount() {
return letter.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView = View.inflate(MainActivity.this, R.layout.right_item, null);
}
TextView right_item_tv = (TextView) convertView.findViewById(R.id.right_item_tv);
right_item_tv.setText(letter[position]);
return convertView;
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
switch (parent.getId()) {
case R.id.left_lv:
boolean isLetter = false;
for (int i = 0; i < letter.length; i++) {
if(letter[i].equals(list.get(position))){
isLetter = true;
break;
}
}
if(!isLetter){
Toast.makeText(MainActivity.this, list.get(position), 0).show();
}
break;
case R.id.right_lv:
for (int i = 0; i < list.size(); i++) {
if(letter[position].equals(list.get(i))){
left_lv.setSelection(i);
}
}
break;
}
}
}
主布局
<LinearLayout 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:orientation="horizontal"
>
<ListView
android:scrollbars="none"
android:id="@+id/left_lv"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<ListView
android:scrollbars="none"
android:id="@+id/right_lv"
android:layout_width="20dp"
android:layout_height="wrap_content"
/>
</LinearLayout>
left1
<LinearLayout 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:orientation="horizontal"
>
<ListView
android:scrollbars="none"
android:id="@+id/left_lv"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<ListView
android:scrollbars="none"
android:id="@+id/right_lv"
android:layout_width="20dp"
android:layout_height="wrap_content"
/>
</LinearLayout>
left2
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/left_item2_tv"
android:background="#ffffff"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
right
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/right_item_tv"
android:background="#00ff00"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>