我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android如何实现拼多多地址选择器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android如何实现拼多多地址选择器

这篇文章主要介绍了Android如何实现拼多多地址选择器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Android是什么

Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。

突然想做一款地区选择器,然后我的弹框用的第三方的,地区数据用的是本地的json文件,解析json文件,然后把数据放在list集合里面,然后设置到弹框里面,问题解决

源码下载地址

效果图

Android如何实现拼多多地址选择器

引用builder

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

json文件存放地址:

E:\workspace\android\MyApplication25\app\class="lazy" data-src\main\assets\citydata.json

解析类bean

package com.example.myapplication25;  import java.io.Serializable;import java.util.List; public class CityBean {         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 {                         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 {                                 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 {                                         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;                    }                }            }        }    }}

弹框类

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;    } }

主界面

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));    }}

布局页面就是一个button和一个textview,请自行添加

感谢你能够认真阅读完这篇文章,希望小编分享的“Android如何实现拼多多地址选择器”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android如何实现拼多多地址选择器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android如何实现拼多多地址选择器

这篇文章主要介绍了Android如何实现拼多多地址选择器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Android是什么Android是一种基于Linux内核的自由及开放源
2023-06-15

Android如何实现仿京东、拼多多商品分类页

这篇文章主要介绍了Android如何实现仿京东、拼多多商品分类页,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先放一个写完之后的样子:写这个需求的思路也很清晰,首先左边肯定是
2023-05-30

Android实现单项、多项选择操作

本文实例为大家分享了Android实现单项、多项选择操作的相关代码,供大家参考,具体内容如下 1、单项选择 1.1.布局
2022-06-06

Android RecyclerView选择多个item的实现代码

模仿网易新闻客户端阅读偏好的频道选择,先看实现的页面: 直接上代码:import android.content.res.Resources; import android.content.res.TypedArray; import an
2022-06-06

阿里云服务器地址选用如何选择最佳服务器地址

在当前数字化时代,云计算已经成为企业提升效率、降低成本的重要手段。而阿里云作为中国最大的云服务提供商,提供了丰富的服务器地址选项。但是,如何选择最佳的服务器地址呢?本文将从几个方面进行详细说明。首先,我们需要了解服务器地址的选择因素。服务器地址的选择主要包括地理位置、网络环境、数据中心等级等。地理位置决定了服务器
阿里云服务器地址选用如何选择最佳服务器地址
2023-10-29

亚马逊如何选择服务器地址

以下是一些可以考虑的选择:AWSAmazonS3:AWSAmazonS3是亚马逊AWSEC2云服务的一个版本,它是一个可扩展的基础架构,可以处理大量数据和应用程序,并且具有很强的安全性和性能。AWSAmazonS3提供24/7全天候的支持服务,可以在任何时间提供服务,包括晚上和周末。AmazonEC2:AWSEC2是AmazonEC2云服务的一个版本,它是一个可扩展的基础架构,可以处理大量数据和应用程序,并且具有很强的安全性和性能。A...
2023-10-27

Android自定义View实现多图片选择控件

前言 相信很多朋友在开发中都会遇到图片上传的情况,尤其是多图上传,最经典的莫过于微信的图片选择了。所有很多情况下会使用到多图选择,所以就有了这篇文章,今天抽点时间写了个控件。 支持自定义选择图片的样式 支持设置图片选择数量 支持图片预
2022-06-06

如何选择阿里云的服务器地址

随着互联网的快速发展,越来越多的企业和个人开始选择在云上进行计算、存储和应用服务。在众多的云服务商中,阿里云以其稳定的服务质量和丰富的服务功能,受到了广大用户的欢迎。然而,对于初次接触阿里云的新用户来说,如何选择阿里云的服务器地址可能会有些困惑。本文将详细讲解如何选择阿里云的服务器地址,希望能帮助到您。选择阿里云
如何选择阿里云的服务器地址
2023-11-19

recycleview如何实现拼多多首页水平滑动效果

这篇文章给大家分享的是有关recycleview如何实现拼多多首页水平滑动效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本文实例为大家分享了recycleview实现拼多多首页水平滑动效果的具体代码,供大家参
2023-06-15

亚马逊如何选择服务器设置地址

1.了解亚马逊服务器选择的重要性在选择亚马逊服务器设置地址之前,我们需要了解服务器选择的重要性。服务器的选择对于网站的性能和可靠性至关重要。如果服务器设置不当,可能会导致网站速度缓慢、崩溃或者无法访问。因此,选择适合自己网站的服务器是非常重要的。2.选择亚马逊服务器的优势亚马逊提供了一系列的云计算服务,其中包括弹性计算云(EC2)和简单存储服务(S3)。这些服务可以帮助用户快速、灵活地构建和扩展自己的应...
2023-10-27

Android如何实现自定义单选多选下拉列表

这篇文章主要为大家展示了“Android如何实现自定义单选多选下拉列表”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android如何实现自定义单选多选下拉列表”这篇文章吧。直接上效果:实现方案
2023-05-30

云服务器地域和操作系统如何选择地址

云服务器地域和操作系统选择通常有以下几个因素需要考虑:地理位置:一般来说,云服务器的位置可以放在国内或其他地方,这样您在使用它的时候不会受到国内网络的限制,而且访问速度更快。系统需求:选择云服务器,您需要考虑系统的运行环境和需求来确定需要使用哪种操作系统和云端服务。如果您需要使用传统的PC服务器,您需要考虑您的操作系统是否支持云计算,以及您的PC系统是否可以运行在云计算平台上。成本因素:
2023-10-26

微信小程序开发中如何实现三级联动地址选择器

这篇文章将为大家详细讲解有关微信小程序开发中如何实现三级联动地址选择器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。picker和picker-view组件在正式介绍实现之前,我们需要先来介绍下这两个组件
2023-06-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录