电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android實現拼多多地址選擇器

瀏覽:195日期:2022-06-04 14:24:45

本文實例為大家分享了Android實現拼多多地址選擇器的具體代碼,供大家參考,具體內容如下

突然想做一款地區選擇器,然后我的彈框用的第三方的,地區數據用的是本地的json文件,解析json文件,然后把數據放在list集合里面,然后設置到彈框里面,問題解決

源碼下載地址

1.效果圖

Android實現拼多多地址選擇器

2.引用builder

implementation ’com.google.code.gson:gson:2.8.0’implementation ’com.contrarywind:Android-PickerView:4.1.9’

3.json文件存放地址:

E:workspaceandroidMyApplication25appsrcmainassetscitydata.json

4.解析類bean

package com.example.myapplication25; import java.io.Serializable;import java.util.List; public class CityBean { /** * code : 200 * message : 操作成功 * 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':'其他'}]}]}]} */ private int code; private String message; private DatasBean datas; public int getCode() {return code; } public void setCode(int code) {this.code = code; } public String getMessage() {return message; } public void setMessage(String message) {this.message = message; } public DatasBean getDatas() {return datas; } public void setDatas(DatasBean datas) {this.datas = datas; } public static class DatasBean implements Serializable {private List<ListBean> list; public List<ListBean> getList() { return list;} public void setList(List<ListBean> list) { this.list = list;} public static class ListBean implements Serializable { /** * 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':'其他'}]}] */ private String area_id; private String area_name; private List<CitylistBean> citylist; public String getArea_id() {return area_id; } public void setArea_id(String area_id) {this.area_id = area_id; } public String getArea_name() {return area_name; } public void setArea_name(String area_name) {this.area_name = area_name; } public List<CitylistBean> getCitylist() {return citylist; } public void setCitylist(List<CitylistBean> citylist) {this.citylist = citylist; } public static class CitylistBean implements Serializable {/** * 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':'其他'}] */ private String area_id;private String area_name;private List<ArealistBean> arealist; public String getArea_id() { return area_id;} public void setArea_id(String area_id) { this.area_id = area_id;} public String getArea_name() { return area_name;} public void setArea_name(String area_name) { this.area_name = area_name;} public List<ArealistBean> getArealist() { return arealist;} public void setArealist(List<ArealistBean> arealist) { this.arealist = arealist;} public static class ArealistBean implements Serializable { /** * area_id : 37 * area_name : 東城區 */ private String area_id; private String area_name; public String getArea_id() {return area_id; } public void setArea_id(String area_id) {this.area_id = area_id; } public String getArea_name() {return area_name; } public void setArea_name(String area_name) {this.area_name = area_name; }} }} }}

5.彈框類

package com.example.myapplication25; import android.app.Activity;import android.graphics.Color; import com.bigkoo.pickerview.builder.OptionsPickerBuilder;import com.bigkoo.pickerview.listener.OnOptionsSelectChangeListener;import com.bigkoo.pickerview.listener.OnOptionsSelectListener;import com.bigkoo.pickerview.view.OptionsPickerView; public class SelectPickerUtil { protected static OptionsPickerView pvOptions; public static OptionsPickerBuilder getSelectPickerBuilder2(OptionsPickerBuilder optionsPickerBuilder) {optionsPickerBuilder.setTitleText('title').setSubmitColor(Color.parseColor('#11DBFF')).setCancelColor(Color.parseColor('#999999')).setDividerColor(Color.GRAY).setLineSpacingMultiplier(2.2f).setTextColorCenter(Color.parseColor('#11DBFF')) //設置選中項文字顏色.setContentTextSize(16);return optionsPickerBuilder; } public static OptionsPickerBuilder getSelectPickerBuilder3(OptionsPickerBuilder optionsPickerBuilder) {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);return optionsPickerBuilder; } public static OptionsPickerView initChoiceArea(Activity activity, OnOptionsSelectListener onOptionsSelectListener, OnOptionsSelectChangeListener onOptionsSelectChangeListener) {pvOptions = new OptionsPickerBuilder(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)//點擊外部dismiss default true//.isDialog(true)//是否顯示為對話框樣式.isRestoreItem(true)//切換時是否還原,設置默認選中第一項。.build();return pvOptions; } }

6.主界面

package com.example.myapplication25; import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.TextView;import com.bigkoo.pickerview.listener.OnOptionsSelectChangeListener;import com.bigkoo.pickerview.listener.OnOptionsSelectListener;import com.bigkoo.pickerview.view.OptionsPickerView;import com.google.gson.Gson;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity implements OnOptionsSelectListener, OnOptionsSelectChangeListener { //參考網址:https://github.com/Bigkoo/Android-PickerView // 省 protected List<String> options1Items = new ArrayList<>(); protected List<String> city; // 市 protected List<List<String>> options2Items = new ArrayList<>(); // 區 protected List<List<List<String>>> options3Items = new ArrayList<>(); // 省地理 protected List<String> options1Itemsnumber = new ArrayList<>(); protected List<String> citynumber; protected List<List<String>> area; protected List<List<String>> areanumber; protected List<String> chirendenarea; protected List<String> chirendenareanumber; // 市地理 protected List<List<String>> options2Itemsnumber = new ArrayList<>(); // 區地理 protected List<List<List<String>>> options3Itemsnumber = new ArrayList<>(); private Button btn_location; private TextView tv_location; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); getCaseInfo2();btn_location = findViewById(R.id.btn_location);tv_location = findViewById(R.id.tv_location);btn_location.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {anXzXz(); }}); } public void anXzXz() {OptionsPickerView build = SelectPickerUtil.initChoiceArea(MainActivity.this, this, this);build.setPicker(options1Items, options2Items, options3Items);//添加數據源build.show(); } private void getCaseInfo2() {String json = null;try { InputStream inputStream = getAssets().open('citydata.json'); int size = inputStream.available(); byte[] buffer = new byte[size]; inputStream.read(buffer); inputStream.close(); json = new String(buffer, 'UTF-8');} catch (IOException ex) { ex.printStackTrace();}// Log.e('TAG','loadJsonFromAssests_all:'+json.toString());Gson gson = new Gson();CityBean userSimple = gson.fromJson(json, CityBean.class);for (int i = 0; i < userSimple.getDatas().getList().size(); i++) { options1Items.add(userSimple.getDatas().getList().get(i).getArea_name()); options1Itemsnumber.add(userSimple.getDatas().getList().get(i).getArea_id()); city = new ArrayList<>(); citynumber = new ArrayList<>(); area = new ArrayList<>(); areanumber = new ArrayList<>(); List<CityBean.DatasBean.ListBean.CitylistBean> citylist = userSimple.getDatas().getList().get(i).getCitylist(); for (int o = 0; o < userSimple.getDatas().getList().get(i).getCitylist().size(); o++) {city.add(citylist.get(o).getArea_name());citynumber.add(citylist.get(o).getArea_id());chirendenarea = new ArrayList<>();chirendenareanumber = new ArrayList<>();List<CityBean.DatasBean.ListBean.CitylistBean.ArealistBean> arealist = userSimple.getDatas().getList().get(i).getCitylist().get(o).getArealist();for (int u = 0; u < userSimple.getDatas().getList().get(i).getCitylist().get(o).getArealist().size(); u++) { chirendenarea.add(arealist.get(u).getArea_name()); chirendenareanumber.add(arealist.get(u).getArea_id());}area.add(chirendenarea);areanumber.add(chirendenareanumber); } options2Items.add(city); options2Itemsnumber.add(citynumber); options3Items.add(area); options3Itemsnumber.add(areanumber);} } @Override public void onOptionsSelectChanged(int options1, int options2, int options3) { } @Override public void onOptionsSelect(int options1, int options2, int options3, View view) {tv_location.setText(String.format('%s省--%s--%s',options1Items.get(options1),options2Items.get(options1).get(options2),options3Items.get(options1).get(options2).get(options3)));Log.e('TAG', 'onOptionsSelect_end:' +options1Itemsnumber.get(options1) + options1Items.get(options1)+ options2Itemsnumber.get(options1).get(options2) + options2Items.get(options1).get(options2)+ options3Itemsnumber.get(options1).get(options2).get(options3) + options3Items.get(options1).get(options2).get(options3)); }}

7.布局頁面就是一個button和一個textview,請自行添加

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: 拼多多
相關文章:
主站蜘蛛池模板: 无线对讲-无线对讲系统解决方案-重庆畅博通信 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 圆盘鞋底注塑机_连帮鞋底成型注塑机-温州天钢机械有限公司 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 技德应用| 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 利浦顿蒸汽发生器厂家-电蒸汽发生器/燃气蒸汽发生器_湖北利浦顿热能科技有限公司官网 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 广州办公室设计,办公室装修,写字楼设计,办公室装修公司_德科 | 潍坊青州古城旅游景点攻略_青州酒店美食推荐-青州旅游网 | 废旧物资回收公司_广州废旧设备回收_报废设备物资回收-益美工厂设备回收公司 | 依维柯自动挡房车,自行式国产改装房车,小型房车价格,中国十大房车品牌_南京拓锐斯特房车 - 南京拓锐斯特房车 | 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 葡萄酒灌装机-食用油灌装机-液体肥灌装设备厂家_青州惠联灌装机械 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | BAUER减速机|ROSSI-MERSEN熔断器-APTECH调压阀-上海爱泽工业设备有限公司 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | ET3000双钳形接地电阻测试仪_ZSR10A直流_SXJS-IV智能_SX-9000全自动油介质损耗测试仪-上海康登 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 留学生辅导网-在线课程论文辅导-留学生挂科申诉机构 | 实验室隔膜泵-无油防腐蚀隔膜泵-耐腐蚀隔膜真空泵-杭州景程仪器 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 盘煤仪,盘料仪,盘点仪,堆料测量仪,便携式激光盘煤仪-中科航宇(北京)自动化工程技术有限公司 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛调查出轨取证公司_青岛婚外情取证-青岛探真调查事务所 | 包装机_厂家_价格-山东包装机有限公司| 杭州中策电线|中策电缆|中策电线|杭州中策电缆|杭州中策电缆永通集团有限公司 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 耐火砖厂家,异形耐火砖-山东瑞耐耐火材料厂 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 |