您的位置:首页 > 其它

城市列表的实现

2016-07-28 19:01 225 查看
package com.bwei.city;

import java.util.ArrayList;

import java.util.List;

import android.R.bool;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.BaseAdapter;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

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<String>();

    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++) {

                //s

                if(letter[i].equals(city[j])){

                    

                    if(!flag){

                        flag =true;

                        //���س��ж�Ӧ����ĸ  s

                        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++) {

                //���letter[i] ==list.get(position) ˵�������ڵ��������ĸ

                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;

        

        }

        

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: