亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Android > 正文

Android PickerView實(shí)現(xiàn)三級聯(lián)動效果

2019-10-21 21:30:44
字體:
供稿:網(wǎng)友

GitHub有一個(gè)開源控件PickerView,可以實(shí)現(xiàn)三級聯(lián)動的效果。雖然該控件使用非常簡單,但是填充數(shù)據(jù)異常繁瑣。GitHub上的Demo在填充數(shù)據(jù)的時(shí)候是一條一條地填充的,代碼過于冗余。下面提供一種簡便的方式來實(shí)現(xiàn)。

(1)在app目錄下新建一個(gè)assets文件夾,將province_data.xml文件復(fù)制到該文件夾下,該XML文件里保存了全國的省市縣的地址數(shù)據(jù)。

(2)使用SAX解析xml文件中的數(shù)據(jù),并將數(shù)據(jù)填充到PickerView這個(gè)控件中。

—ProvinceModel—

 

public class ProvinceModel implements IPickerViewData{  private String name;  private List<CityModel> cityList;  public ProvinceModel()  {    super();  }  public String getName()  {    return name;  }  public void setName(String name)  {    this.name = name;  }  public List<CityModel> getCityList()  {    return cityList;  }  public void setCityList(List<CityModel> cityList)  {    this.cityList = cityList;  }  @Override  public String getPickerViewText()  {    return name;  }}

—CityModel—

public class CityModel implements IPickerViewData{  private String name;  private List<DistrictModel> districtList;  public CityModel()  {    super();  }  public String getName()  {    return name;  }  public void setName(String name)  {    this.name = name;  }  public List<DistrictModel> getDistrictList()  {    return districtList;  }  public void setDistrictList(List<DistrictModel> districtList)  {    this.districtList = districtList;  }  @Override  public String toString()  {    return name;  }  @Override  public String getPickerViewText()  {    return name;  }}

—DistrictModel—

public class DistrictModel implements IPickerViewData{  private String name;  private String zipcode;  public DistrictModel()  {    super();  }  public String getZipcode()  {    return zipcode;  }  public void setZipcode(String zipcode)  {    this.zipcode = zipcode;  }  public String getName()  {    return name;  }  public void setName(String name)  {    this.name = name;  }  @Override  public String toString()  {    return name;  }  @Override  public String getPickerViewText()  {    return name;  }}

—XmlParserHandler—

 

public class XmlParserHandler extends DefaultHandler{  /**   *  存儲所有的解析對象   */  private List<ProvinceModel> provinceList = new ArrayList<>();  private ProvinceModel provinceModel = new ProvinceModel();  private CityModel cityModel = new CityModel();  private DistrictModel districtModel = new DistrictModel();  public XmlParserHandler(){}  public List<ProvinceModel> getDataList()  {    return provinceList;  }  @Override  public void startDocument() throws SAXException  {    super.startDocument();  }  @Override  public void endDocument() throws SAXException  {    super.endDocument();  }  @Override  public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException  {    if (qName.equals("province"))    {      provinceModel = new ProvinceModel();      provinceModel.setName(attributes.getValue(0));      provinceModel.setCityList(new ArrayList<CityModel>());    }    else if (qName.equals("city"))    {      cityModel = new CityModel();      cityModel.setName(attributes.getValue(0));      cityModel.setDistrictList(new ArrayList<DistrictModel>());    }    else if (qName.equals("district"))    {      districtModel = new DistrictModel();      districtModel.setName(attributes.getValue(0));      districtModel.setZipcode(attributes.getValue(1));    }  }  @Override  public void endElement(String uri, String localName, String qName) throws SAXException  {    if(qName.equals("district"))    {      cityModel.getDistrictList().add(districtModel);    }    else if(qName.equals("city"))    {      provinceModel.getCityList().add(cityModel);    }    else if(qName.equals("province"))    {      provinceList.add(provinceModel);    }  }  @Override  public void characters(char[] ch, int start, int length) throws SAXException  {    super.characters(ch, start, length);  }}

 

public class AddressAddActivity extends BaseActivity{  private OptionsPickerView mCityPickerView;  private ArrayList<ProvinceModel> mProvinces = new ArrayList<>();  private ArrayList<ArrayList<CityModel>> mCities = new ArrayList<>();  private ArrayList<ArrayList<ArrayList<DistrictModel>>> mDistricts = new ArrayList<>();  @Override  protected void onCreate(@Nullable Bundle savedInstanceState)  {    super.onCreate(savedInstanceState);    supportRequestWindowFeature(Window.FEATURE_NO_TITLE);    setContentView(R.layout.activity_address_add);    ViewUtils.inject(this);    init();  }  private void init()  {    initProvinceDatas();    try    {      //選項(xiàng)選擇器      mCityPickerView = new OptionsPickerView(this);      mCityPickerView.setPicker( mProvinces, mCities, mDistricts, true);      mCityPickerView.setTitle("選擇城市");      mCityPickerView.setCyclic(false, false , false);      mCityPickerView.setOnoptionsSelectListener(new OptionsPickerView.OnOptionsSelectListener() {        @Override        public void onOptionsSelect(int options1, int option2, int options3)        {          String address = mProvinces.get(options1).getName() + " "              + mCities.get(options1).get(option2) + " "              + mDistricts.get(options1).get(option2).get(options3);          mTxtAddress.setText(address);        }      });    }    catch (Exception e)    {      e.printStackTrace();    }  }  @OnClick(R.id.ll_city_picker)  public void showpickerView(View view)  {    mCityPickerView.show();  }  protected void initProvinceDatas()  {    AssetManager asset = getAssets();    try    {      InputStream input = asset.open("province_data.xml");      SAXParserFactory spf = SAXParserFactory.newInstance();      SAXParser parser = spf.newSAXParser();      XmlParserHandler handler = new XmlParserHandler();      parser.parse(input , handler);      input.close();      //獲取解析出來的數(shù)據(jù)      mProvinces = (ArrayList<ProvinceModel>) handler.getDataList();    }    catch (Throwable e)    {      e.printStackTrace();    }    if (mProvinces != null)    {      for (ProvinceModel p : mProvinces)      {        List<CityModel> cities = p.getCityList();        //組裝城市數(shù)據(jù)        mCities.add((ArrayList<CityModel>) cities);        ArrayList<ArrayList<DistrictModel>> dts = new ArrayList<>();        for (CityModel c : cities)        {          List<DistrictModel> districts = c.getDistrictList();          dts.add((ArrayList<DistrictModel>) districts);        }        mDistricts.add(dts);      }    }  }}

到此完畢,很簡單的例子。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
成人影院在线观看| 亚洲色图视频免费播放| 热re久久精品国产99热| 青青青国产精品一区二区| 亚洲精品久久久中文字幕| 久久视频免费看| 四虎精品一区二区| 国产精品探花一区二区在线观看| 成人aaaa| 国产一区二区三区在线看| 国产精品成人一区| 亚洲免费黄色录像| japanese中文字幕| 国产中文伊人| 欧美精品电影在线| 天堂中文在线观看视频| 国产精品欧美久久久久一区二区| 国产中文字幕视频| 日色在线视频| 精品美女一区二区| 欧美日韩在线观看一区二区| aaa国产一区| www.国产在线播放| 国产精品久久久久av| 成人欧美一区二区三区视频xxx| 九色视频入口| 日韩一区二区三区高清| 1234区在线观看视频免费| 精品国精品国产自在久不卡| 久久99久久精品| 影视先锋av在线| 国产一区二区av在线| 久久精品国产一区二区三区肥胖| 日韩精品欧美激情一区二区| 男人操女人的视频在线观看欧美| 中日韩一级黄色片| 国产偷窥女洗浴在线观看亚洲| 午夜av噜噜噜噜噜噜| 欧美日韩中文一区二区| 国产又爽又黄视频| 成人动漫av| 午夜免费电影一区在线观看| 亚洲一二在线观看| 黄色高清无遮挡| 精品国产乱码久久久久久蜜臀网站| 亚洲国产成人私人影院tom| 欧美丝袜丝交足nylons图片| 国产精品一区在线免费观看| 亚洲精品一区在线观看| 欧美最猛黑人xxxx黑人猛交黄| 激情视频免费在线| 国产呻吟对白刺激无套视频在线| 精品国产白色丝袜高跟鞋| 日本女优天堂99伊人| 欧美精品一区二区三区免费播放| xnxx国产精品| 午夜精品成人在线视频| 成人午夜av影视| 97国产精品videossex| 亚洲一区在线看| 国产5g影院天天爽天天看| 精品中文字幕在线播放| 136av视频导航| 日本不卡免费一区| 青青草手机在线视频| xxx性欧美在线| 在线观看日韩av电影| 日韩a∨精品日韩在线观看| 欧美日韩美女在线| 奇米四色中文综合久久| 九九夜夜操妹子| 久久精品国产色蜜蜜麻豆| 中国毛片在线观看| 午夜高潮免费视频| 亚洲成人蜜桃| 亚洲欧美丝袜中文综合| 国产免费人做人爱午夜视频| 美女黄a一级视频| 亚洲欧洲美洲一区二区三区| 午夜剧场成人观在线视频免费观看| 亚洲免费色视频| 国产精品毛片大码女人| 波多野结衣一区二区| 天堂在线中文网官网| 青青草国产成人久久91网| 伊人久久大香线蕉综合75| 久久这里只精品最新地址| 中文字幕在线观看日韩| 久久香蕉精品香蕉| 99re热视频这里只精品| 亚洲欧洲午夜| 手机看片日韩| 91精品国产自产在线观看永久∴| 伊人情人综合网| 国产欧美日韩久久| 97在线播放视频| 亚洲欧洲在线一区| 免费看亚洲片| 久久uomeier| 精品视频麻豆入口| 成年网站在线观看视频| 亚洲a∨精品一区二区三区导航| 五月天激情视频在线观看| 影音先锋5566资源网| 国产中文字幕在线观看| 四虎国产精品成人免费入口| 国产寡妇树林野战在线播放| 精品福利在线导航| 人人玩人人添人人澡免费| 成人资源在线| 亚洲一级不卡视频| 欧美性受xxxx黑人猛交88| 99久久777色| 免费成人美女女在线观看| 资源视频在线播放免费| 91精品日本| 97超碰国产一区二区三区| 日本不卡一区视频| eeuss国产一区二区三区| 成人免费看视频网站| 影音先锋电影在线观看| 成人激情诱惑| 在线一区视频| 91porn在线视频| 亚洲一区二区三区四区电影| 在线视频播放大全| 亚洲第一网中文字幕| 国产精品永久入口久久久| 亚洲第一福利社区| 欧洲日本在线| 九色蝌蚪自拍| 99国产精品久久久久久久久久久| www.成人在线视频| 欧美在线播放| 中文字幕亚洲激情| 99riav视频在线观看| 亚洲最大的黄色网| 青草在线视频在线观看| 国产成人av免费在线观看| 成人h视频在线观看播放| 日韩一区二区三区av| 亚洲成av人片一区二区梦乃| 国产在线一区不卡| 日韩欧美你懂的| 日日夜夜中文字幕| 成人免费乱码大片a毛片软件| 亚州av电影免费在线观看| 国产精品∨欧美精品v日韩精品| 怡红院亚洲色图| 欧美精品在线一区二区三区| 成年人午夜免费视频| 久久在精品线影院精品国产| 免费国产阿v视频在线观看| 久久爱www| 91色乱码一区二区三区| 黄网站在线免费看| 国产一区二区三区亚洲| 国产午夜一区二区三区| 天天干夜夜艹| 四虎4hu永久免费入口| 伊人亚洲综合网| 日本高清www免费视频| 中文字幕免费精品一区| 污视频网站免费在线观看| 爱情岛论坛亚洲品质自拍视频网站| 亚洲风情在线资源站| 99热99re6国产在线播放| 久久99精品久久久久久| 国产日韩综合av| 都市激情久久久久久久久久久| 久久狠狠高潮亚洲精品| 欧美精三区欧美精三区| 三级外国片在线观看视频| 国产一级在线免费观看| 久久精品久久久久久| 欧美成人亚洲高清在线观看| 偷拍女澡堂一区二区三区| 国内精品久久久久久不卡影院| 中文字幕一区二区三区日韩精品| 欧美日韩在线免费播放| 在线观看免费视频综合| 6080yy午夜一二三区久久| 亚洲精品套图| 免费日韩一区二区| 亚洲一区二区av在线| 国产精品久久久亚洲一区| 久久综合在线观看| 亚洲精品美女在线| 欧美成人高清| 日韩成人av毛片| 日本精品久久久久中文字幕| 亚洲精品日韩久久久| 国产精品无码专区在线观看| 性xxxx欧美老肥妇牲乱| 香蕉视频1024| 亚洲电影中文字幕在线观看| 写真福利片hd在线播放| 国产成人午夜电影| 狠狠躁天天躁日日躁欧美| 免费在线看污| 91免费在线视频观看| 欧美一级视频| 国产女王在线**视频| 天天色天天综合| 少妇高潮在线观看| 久久久久久久久久久久久久av| 黄色a级片免费| 大地资源高清播放在线观看| 欧美在线观看视频网站| 久久亚洲专区| 国产精品影视网| 免费wwwxxx| 91超碰碰碰碰久久久久久综合| 日韩丰满少妇无码内射| 波多野结衣av在线免费观看| 日本五十路女优| 伊人久久大香线蕉午夜av| 亚洲欧美国产三级| 日本成人小视频| 性生活视频软件| 色综合综合色| 天堂中文www在线| 亚洲色图欧美另类| 在线播放日韩精品| 波多野结衣xxxx| 亚洲精品v日韩精品| 日韩亚洲在线视频| 99视频国产精品免费观看| 一区二区三区在线观看国产| 午夜私人影院在线观看| 亚洲成人黄色网址| 国产精品久久久久久一区二区三区| 国产无码精品在线播放| 国产一区二区三区18| 亚洲男人的天堂在线观看| 欧美激情偷拍| 日韩女优制服丝袜电影| 午夜一区二区三区免费| 亚洲欧美久久婷婷爱综合一区天堂| 久久嫩草精品久久久精品一| 欧美一区二区在线免费观看| 久久波多野结衣| 欧美一级片免费在线观看| 久草中文在线观看| 天天操天天舔天天干| 成人av网站在线观看| 精品中文字幕人| 日韩欧美在线字幕| 亚洲欧美日本伦理| 亚洲国产一区二区久久久777| 亚洲人成人一区二区在线观看| 国内免费久久久久久久久久久| 国产精品久久久久久影院8一贰佰| 亚洲综合在线小说| 欧美日韩国产精品一区二区三区| 欧美一级在线免费| 欧美在线亚洲综合一区| 亚洲天堂av综合网| 中文成人av在线| 九色porny丨首页入口在线| 亚洲欧洲日韩综合一区二区| 国产精品区免费视频| 超碰个人在线| 国产精品主播一区二区| 精品va天堂亚洲国产| 一区二区在线观看免费| 在线国产一区二区| 91pony九色| 亚洲一区二区在线免费观看| 欧美mv和日韩mv国产网站| 97涩在线观看视频| www.我爱av| 久久爱www久久做| 91精品久久久久| 97精品人妻一区二区三区| www.欧美黄色| 毛片视频免费观看| 欧美大尺度激情区在线播放| 貂蝉被到爽流白浆在线观看| 国产在线视频二区| 久久久久人妻精品一区三寸| 黄色的视频在线观看| 亚洲精选在线观看| aaaa欧美| 涩涩漫画在线观看| 国产亚洲欧美在线| 中文字幕第36页| 欧美丰满少妇xxxxx| 国产又粗又硬视频| 欧美在线视频播放| 亚洲天堂999| 69av视频在线观看| 亚洲一级片免费观看| 男人添女人下部视频免费| 日韩精品久久久久久久| 蜜桃臀av在线| 四虎精品一区二区永久在线观看| 少妇精品高潮欲妇又嫩中文字幕| 国产探花一区二区三区| 99久久综合网| 国产午夜精品一区二区三区嫩草| 久久精品色播| 日本在线观看天堂男亚洲| 日韩一区二区麻豆国产| 欧美性猛交xxxx乱大交少妇| 久久久久久国产精品视频| 国产免费www| av网页在线观看| 久久激情电影| 一区二区三区四区电影| 欧美亚洲在线| 99精品视频一区二区| 蜜桃一区二区三区| 欧美激情视频给我| 在线成人激情黄色| 青青草免费在线观看| 性金发美女69hd大尺寸| 亚洲精品爱爱久久| 久久综合九色欧美综合狠狠| 日韩美女免费视频| 92国产精品| 久久久久蜜桃| 国产日韩欧美一区二区三区视频| 污版网站在线观看| 老鸭窝亚洲一区二区三区| 午夜av中文字幕| 受虐m奴xxx在线观看| www.久久91|