Android城市三级联动选择器

时间:2021-04-21 05:36:42

便捷、新颖的三级fdsafdsa联动城市选择器

/**  * 城市Picker  *  * @author zihao  *  */ public
class
CityPicker extends
LinearLayout {
    /** 滑动控件 */fdsaf     private
ScrollerNumberPicker provincePicker;
    private
ScrollerNumberPicker cityPicker;
    private
ScrollerNumberPicker counyPicker;
    /** 选择监听 */     private
OnSelectingListener onSelectingListener;
    /** 刷新界面 */     private
static
final int REFRESH_VIEW = 0x001;
    /** 临时日期 */     private
int
tempProvinceIndex = -1;
    private
int
temCityIndex = -1;
    private
int
tempCounyIndex = -1;
    private
Context context;
    private
List<cityinfo> province_list =
new
ArrayList<cityinfo>();
    private
HashMap<string, list<cityinfo=
"">> city_map = new
HashMap<string, list<cityinfo=
"">>();
    private
HashMap<string, list<cityinfo=
"">> couny_map = new
HashMap<string, list<cityinfo=
"">>();
      private
CitycodeUtil citycodeUtil;
    private
String city_code_string;
    private
String city_string;
      public
CityPicker(Context context, AttributeSet attrs) {
        super(context, attrs);         this.context = context;         getaddressinfo();         // TODO Auto-generated constructor stub     }       public
CityPicker(Context context) {
        super(context);         this.context = context;         getaddressinfo();         // TODO Auto-generated constructor stub     }       // 获取城市信息     private
void
getaddressinfo() {
        // TODO Auto-generated method stub         // 读取城市信息string         JSONParser parser = new
JSONParser();
        String area_str = FileUtil.readAssets(context, "area.json");         province_list = parser.getJSONParserResult(area_str, "area0");         city_map = parser.getJSONParserResultArray(area_str, "area1");         couny_map = parser.getJSONParserResultArray(area_str, "area2");     }       public
static
class JSONParser {
        public
ArrayList<string> province_list_code =
new
ArrayList<string>();
        public
ArrayList<string> city_list_code =
new
ArrayList<string>();
          public
List<cityinfo> getJSONParserResult(String JSONString, String key) {
            List<cityinfo> list = new
ArrayList<cityinfo>();
            JsonObject result = new
JsonParser().parse(JSONString)
                    .getAsJsonObject().getAsJsonObject(key);               Iterator<!--?--> iterator = result.entrySet().iterator();             while
(iterator.hasNext()) {
                @SuppressWarnings("unchecked")                 Map.Entry<string, jsonelement=""> entry = (Entry<string, jsonelement="">) iterator                         .next();                 Cityinfo cityinfo = new
Cityinfo();
                  cityinfo.setCity_name(entry.getValue().getAsString());                 cityinfo.setId(entry.getKey());                 province_list_code.add(entry.getKey());                 list.add(cityinfo);             }             System.out.println(province_list_code.size());             return
list;
        }           public
HashMap<string, list<cityinfo=
"">> getJSONParserResultArray(
                String JSONString, String key) {             HashMap<string, list<cityinfo="">> hashMap = new
HashMap<string, list<cityinfo=
"">>();
            JsonObject result = new
JsonParser().parse(JSONString)
                    .getAsJsonObject().getAsJsonObject(key);               Iterator<!--?--> iterator = result.entrySet().iterator();             while
(iterator.hasNext()) {
                @SuppressWarnings("unchecked")                 Map.Entry<string, jsonelement=""> entry = (Entry<string, jsonelement="">) iterator                         .next();                 List<cityinfo> list = new
ArrayList<cityinfo>();
                JsonArray array = entry.getValue().getAsJsonArray();                 for
(
int
i =
0; i < array.size(); i++) {
                    Cityinfo cityinfo = new
Cityinfo();
                    cityinfo.setCity_name(array.get(i).getAsJsonArray().get(0)                             .getAsString());                     cityinfo.setId(array.get(i).getAsJsonArray().get(1)                             .getAsString());                     city_list_code.add(array.get(i).getAsJsonArray().get(1)                             .getAsString());                     list.add(cityinfo);                 }                 hashMap.put(entry.getKey(), list);             }             return
hashMap;
        }     } Android城市三级联动选择器

源码包免费下载地址::【点击这里】