拼多多 2023-10-01 09:07:03
本文实例为大家分享了android实现拼多多地址选择器的具体代码,供大家参考,具体内容如下
突然想做一款地区选择器,然后我的弹框用的第三方的,地区数据用的是本地的json文件,解析json文件,然后把数据放在list集合里面,然后设置到弹框里面,问题解决
源码下载地址
implementation'com.google.code.gson:gson:2.8.0'implementation'com.contrarywind:android-pickerview:4.1.9'
e:/workspace/android/myapplication25/app/src/main/assets/citydata.json
packagecom.example.myapplication25;importjava.io.serializable;importjava.util.list;publicclasscitybean{/第一code:200message:操作成功datas:{"list":[{"area_id":"1","area_name":"北京","citylist":[{"area_id":"36","area_name":"北京市","arealist":[{"area_id":"37","area_name":"东城区"},{"area_id":"38","area_name":"西城区"},{"area_id":"41","area_name":"朝阳区"},{"area_id":"42","area_name":"丰台区"},{"area_id":"43","area_name":"石景山区"},{"area_id":"44","area_name":"海淀区"},{"area_id":"45","area_name":"门头沟区"},{"area_id":"46","area_name":"房山区"},{"area_id":"47","area_name":"通州区"},{"area_id":"48","area_name":"顺义区"},{"area_id":"49","area_name":"昌平区"},{"area_id":"50","area_name":"大兴区"},{"area_id":"51","area_name":"怀柔区"},{"area_id":"52","area_name":"平谷区"},{"area_id":"53","area_name":"密云县"},{"area_id":"54","area_name":"延庆县"},{"area_id":"566","area_name":"其他"}]}]}]}/privateintcode;privatestringmessage;privatedatasbeandatas;publicintgetcode(){returncode;}publicvoidsetcode(intcode){this.code=code;}publicstringgetmessage(){returnmessage;}publicvoidsetmessage(stringmessage){this.message=message;}publicdatasbeangetdatas(){returndatas;}publicvoidsetdatas(datasbeandatas){this.datas=datas;}publicstaticclassdatasbeanimplementsserializable{privatelist<listbean>list;publiclist<listbean>getlist(){returnlist;}publicvoidsetlist(list<listbean>list){this.list=list;}publicstaticclasslistbeanimplementsserializable{/第一area_id:1area_name:北京citylist:[{"area_id":"36","area_name":"北京市","arealist":[{"area_id":"37","area_name":"东城区"},{"area_id":"38","area_name":"西城区"},{"area_id":"41","area_name":"朝阳区"},{"area_id":"42","area_name":"丰台区"},{"area_id":"43","area_name":"石景山区"},{"area_id":"44","area_name":"海淀区"},{"area_id":"45","area_name":"门头沟区"},{"area_id":"46","area_name":"房山区"},{"area_id":"47","area_name":"通州区"},{"area_id":"48","area_name":"顺义区"},{"area_id":"49","area_name":"昌平区"},{"area_id":"50","area_name":"大兴区"},{"area_id":"51","area_name":"怀柔区"},{"area_id":"52","area_name":"平谷区"},{"area_id":"53","area_name":"密云县"},{"area_id":"54","area_name":"延庆县"},{"area_id":"566","area_name":"其他"}]}]/privatestringarea_id;privatestringarea_name;privatelist<citylistbean>citylist;publicstringgetarea_id(){returnarea_id;}publicvoidsetarea_id(stringarea_id){this.area_id=area_id;}publicstringgetarea_name(){returnarea_name;}publicvoidsetarea_name(stringarea_name){this.area_name=area_name;}publiclist<citylistbean>getcitylist(){returncitylist;}publicvoidsetcitylist(list<citylistbean>citylist){this.citylist=citylist;}publicstaticclasscitylistbeanimplementsserializable{/第一area_id:36area_name:北京市arealist:[{"area_id":"37","area_name":"东城区"},{"area_id":"38","area_name":"西城区"},{"area_id":"41","area_name":"朝阳区"},{"area_id":"42","area_name":"丰台区"},{"area_id":"43","area_name":"石景山区"},{"area_id":"44","area_name":"海淀区"},{"area_id":"45","area_name":"门头沟区"},{"area_id":"46","area_name":"房山区"},{"area_id":"47","area_name":"通州区"},{"area_id":"48","area_name":"顺义区"},{"area_id":"49","area_name":"昌平区"},{"area_id":"50","area_name":"大兴区"},{"area_id":"51","area_name":"怀柔区"},{"area_id":"52","area_name":"平谷区"},{"area_id":"53","area_name":"密云县"},{"area_id":"54","area_name":"延庆县"},{"area_id":"566","area_name":"其他"}]/privatestringarea_id;privatestringarea_name;privatelist<arealistbean>arealist;publicstringgetarea_id(){returnarea_id;}publicvoidsetarea_id(stringarea_id){this.area_id=area_id;}publicstringgetarea_name(){returnarea_name;}publicvoidsetarea_name(stringarea_name){this.area_name=area_name;}publiclist<arealistbean>getarealist(){returnarealist;}publicvoidsetarealist(list<arealistbean>arealist){this.arealist=arealist;}publicstaticclassarealistbeanimplementsserializable{/第一area_id:37area_name:东城区/privatestringarea_id;privatestringarea_name;publicstringgetarea_id(){returnarea_id;}publicvoidsetarea_id(stringarea_id){this.area_id=area_id;}publicstringgetarea_name(){returnarea_name;}publicvoidsetarea_name(stringarea_name){this.area_name=area_name;}}}}}}
packagecom.example.myapplication25;importandroid.app.activity;importandroid.graphics.color;importcom.bigkoo.pickerview.builder.optionspickerbuilder;importcom.bigkoo.pickerview.listener.onoptionsselectchangelistener;importcom.bigkoo.pickerview.listener.onoptionsselectlistener;importcom.bigkoo.pickerview.view.optionspickerview;publicclassselectpickerutil{protectedstaticoptionspickerviewpvoptions;publicstaticoptionspickerbuildergetselectpickerbuilder2(optionspickerbuilderoptionspickerbuilder){optionspickerbuilder.settitletext("title").setsubmitcolor(color.parsecolor("#11dbff")).setcancelcolor(color.parsecolor("#999999")).setdividercolor(color.gray).setlinespacingmultiplier(2.2f).settextcolorcenter(color.parsecolor("#11dbff"))//设置选中项文字颜色.setcontenttextsize(16);returnoptionspickerbuilder;}publicstaticoptionspickerbuildergetselectpickerbuilder3(optionspickerbuilderoptionspickerbuilder){optionspickerbuilder.setdividercolor(color.dkgray).setcontenttextsize(20).setsubmitcolor(color.parsecolor("#11dbff")).setcancelcolor(color.parsecolor("#999999"))//.setdecorview(mframelayout)//非dialog模式下,设置viewgroup,pickerview将会添加到这个viewgroup中.setoutsidecolor(0x00000000).setlinespacingmultiplier(2.2f).setoutsidecancelable(true);returnoptionspickerbuilder;}publicstaticoptionspickerviewinitchoicearea(activityactivity,onoptionsselectlisteneronoptionsselectlistener,onoptionsselectchangelisteneronoptionsselectchangelistener){pvoptions=newoptionspickerbuilder(activity,onoptionsselectlistener).setoptionsselectchangelistener(onoptionsselectchangelistener).setsubmittext("确定")//确定按钮文字.setcanceltext("取消")//取消按钮文字.settitletext("城市选择")//标题.setsubcalsize(18)//确定和取消文字大小.settitlesize(20)//标题文字大小.settitlecolor(0xfff9731e)//标题文字颜色.setsubmitcolor(0xfff9731e)//确定按钮文字颜色.setcancelcolor(0xfff9731e)//取消按钮文字颜色.iscenterlabel(false)//是否只显示中间选中项的label文字,false则每项item全部都带有label。.setcyclic(false,false,false)//循环与否.setselectoptions(0,0,0)//设置默认选中项.setoutsidecancelable(false)//点击外部dismissdefaulttrue//.isdialog(true)//是否显示为对话框样式.isrestoreitem(true)//切换时是否还原,设置默认选中第一项。.build();returnpvoptions;}}
packagecom.example.myapplication25;importandroid.os.bundle;importandroid.util.log;importandroid.view.view;importandroid.widget.button;importandroid.widget.textview;importcom.bigkoo.pickerview.listener.onoptionsselectchangelistener;importcom.bigkoo.pickerview.listener.onoptionsselectlistener;importcom.bigkoo.pickerview.view.optionspickerview;importcom.google.gson.gson;importjava.io.ioexception;importjava.io.inputstream;importjava.util.arraylist;importjava.util.list;importandroidx.appcompat.app.appcompatactivity;publicclassmainactivityextendsappcompatactivityimplementsonoptionsselectlistener,onoptionsselectchangelistener{//参考网址: