Android-PickerView 3.x版 市-县-乡 三级联动

以前很少自己写demo,都是直接用到程序上,不行再改,其实这样越写思路越乱,不如写demo直观清晰,还能有所总结。
所以啦~~今天要把我写的demo放出来啦,给自己留点东西,也给大家方面使用~
首先在build.gradle文件中添加

 compile 'com.contrarywind:Android-PickerView:3.2.5'

这是3.X版本哦,比2.X的更新了:
1、代码简洁
2、多了很多字体颜色等的设置
3、数据源可以使用实体类,只需要在实体类中继承IPickerViewData
4、如果不喜欢目前的布局,还可以自定义布局
是不是觉得功能一下丰富了呢,现在就来使用吧~

下面的代码是给地区联动滚轮初始化赋值

pvOptions = new OptionsPickerView.Builder(activity, new OptionsPickerView.OnOptionsSelectListener() {
                            @Override
                            public void onOptionsSelect(int options1, int option2, int options3, View v) {
                                //返回的分别是三个级别的选中位置
                                String tx = citylist.get(options1).getPickerViewText()
                                        + " "
                                        + countyLists.get(options1).get(option2).getPickerViewText()
                                        + " "
                                        + countryListss.get(options1).get(option2).get(options3).getPickerViewText();
                                location.setText(tx);
                            }
                        })
                                .setContentTextSize(18)//滚轮文字大小
                                .build();
                        pvOptions.setPicker(citylist, countyLists, countryListss);

我只设置了滚轮中字体的大小,其他的设置还有

 .setSubmitText("确定")//确定按钮文字
                .setCancelText("取消")//取消按钮文字
                .setTitleText("城市选择")//标题
                .setSubCalSize(18)//确定和取消文字大小
                .setTitleSize(20)//标题文字大小
                .setTitleColor(Color.BLACK)//标题文字颜色
                .setSubmitColor(Color.BLUE)//确定按钮文字颜色
                .setCancelColor(Color.BLUE)//取消按钮文字颜色
                .setTitleBgColor(0xFF333333)//标题背景颜色 Night mode
                .setBgColor(0xFF000000)//滚轮背景颜色 Night mode
                .setContentTextSize(18)//滚轮文字大小
                .setLinkage(false)//设置是否联动,默认true
                .setLabels("省", "市", "区")//设置选择的三级单位
                .setCyclic(false, false, false)//循环与否
                .setSelectOptions(1, 1, 1)  //设置默认选中项
                .setOutSideCancelable(false)//点击外部dismiss default true
                .isDialog(true)//是否显示为对话框样式

其实这样就已经差不多介绍完了pickerview3.x的展示,最后还有一点是数据的获取,我这里用的是本地数据库,然后循环出市、县、乡的联动数据,赋值给pickerview

 DBManager dbManager = new DBManager(activity);
            SQLiteDatabase sqLiteDatabase = dbManager.DBManager(activity.getPackageName());
            CityBean henan = dbManager.query(sqLiteDatabase, new String[]{"areaid,name,parentid"},
                    "name like ?", new String[]{"%河南%"});
            String henanCode = henan.getAreaid();
            citylist = dbManager.queryByCode(sqLiteDatabase, new String[]{"areaid,name,parentid"},
                    "parentid=?", new String[]{henanCode});//城市集合

            for (int i = 0; i < citylist.size(); i++) {
                CityBean city = citylist.get(i);
                String cityCode = city.getAreaid();
                ArrayList<CityBean> countylist = dbManager.queryByCode(sqLiteDatabase, new String[]{"areaid,name,parentid"},
                        "parentid=?", new String[]{cityCode});
                countyLists.add(countylist);//县城集合
                ArrayList<ArrayList<CityBean>> countryLists = new ArrayList<>();
                for (int j = 0; j < countylist.size(); j++) {
                    CityBean county = countylist.get(j);
                    String countyCode = county.getAreaid();
                    ArrayList<CityBean> countrylist = dbManager.queryByCode(sqLiteDatabase,
                            new String[]{"areaid,name,parentid"},
                            "parentid=?", new String[]{countyCode});
                    countryLists.add(countrylist);
                }
                countryListss.add(countryLists);//乡集合

            }
            sqLiteDatabase.close();

网上大多数示例都是从json中循环,我觉得数据太多,还有查询的需求不太一样,就放了数据库,具体数据库操作,给大家奉上我写的demo源码,大家可以下载直接运行~~~

pickerviewDemo

最后附上github中的pickerview源码,和说明文档,大家有兴趣的可以去学习哦~~
源码:https://github.com/Bigkoo/Android-PickerView
文档:https://github.com/Bigkoo/Android-PickerView/wiki/中文说明文档(3.x版)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米悠悠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值