基于github 开源框架Android-PickerView-master实现省市三级联动
来源:互联网 发布:JVM1099端口被占用 编辑:程序博客网 时间:2024/05/21 22:25
废话不多说,直接上代码。注释也齐全:
package com.bigkoo.pickerviewdemo;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;import android.widget.Toast;import com.bigkoo.pickerview.OptionsPickerView;import com.bigkoo.pickerview.TimePickerView;import com.bigkoo.pickerviewdemo.bean.China;import com.bigkoo.pickerviewdemo.bean.ProvinceBean;import com.google.gson.Gson;public class MainActivity extends Activity { private ArrayList<ProvinceBean> options1Items = new ArrayList<ProvinceBean>(); private ArrayList<ArrayList<String>> options2Items = new ArrayList<ArrayList<String>>(); private ArrayList<ArrayList<ArrayList<String>>> options3Items = new ArrayList<ArrayList<ArrayList<String>>>(); private TextView tvOptions; TimePickerView pvTime; OptionsPickerView pvOptions; View vMasker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); vMasker=findViewById(R.id.vMasker); tvOptions=(TextView) findViewById(R.id.tvOptions); //选项选择器 pvOptions = new OptionsPickerView(this); //三级联动效果 pvOptions.setPicker(options1Items, options2Items, options3Items, true); //设置选择的三级单位// pwOptions.setLabels("省", "市", "区"); pvOptions.setTitle("选择城市"); pvOptions.setCyclic(false, true, true); //设置默认选中的三级项目 //监听确定选择按钮 pvOptions.setSelectOptions(1, 1, 1); pvOptions.setOnoptionsSelectListener(new OptionsPickerView.OnOptionsSelectListener() { @Override public void onOptionsSelect(int options1, int option2, int options3) { //返回的分别是三个级别的选中位置 String tx = options1Items.get(options1).getPickerViewText() + options2Items.get(options1).get(option2) + options3Items.get(options1).get(option2).get(options3); tvOptions.setText(tx); vMasker.setVisibility(View.GONE); } }); //点击弹出选项选择器 tvOptions.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pvOptions.show(); } }); } private void initData(){ try {//解析json数据 InputStream is = getResources().getAssets().open("city.json"); int available = is.available(); byte [] b=new byte[available]; int read = is.read(b);//注意格式,utf-8 或者gbk 否则解析出来可能会出现乱码 String json=new String(b,"GBK"); System.out.println(json); Gson gson= new Gson(); China china = gson.fromJson(json, China.class); ArrayList<China.Province> citylist = china.citylist; //======省级 for (China.Province province: citylist ) { String provinceName = province.p; // System.out.println("provinceName==="+provinceName); ArrayList<China.Province.Area> c = province.c; //选项1 options1Items.add(new ProvinceBean(0,provinceName,"","")); ArrayList<ArrayList<String>> options3Items_01 = new ArrayList<ArrayList<String>>(); //区级 //选项2 ArrayList<String> options2Items_01=new ArrayList<String>(); if (c!=null) { for (China.Province.Area area : c ) { //System.out.println("area------" + area.n + "------"); options2Items_01.add(area.n); ArrayList<China.Province.Area.Street> a = area.a; ArrayList<String> options3Items_01_01=new ArrayList<String>(); //县级 if (a!=null) { for (China.Province.Area.Street street : a ) { // System.out.println("street/////" + street.s); options3Items_01_01.add(street.s); } options3Items_01.add(options3Items_01_01); }else{ //县级为空的时候 options3Items_01_01.add(""); options3Items_01.add(options3Items_01_01); } } options2Items.add(options2Items_01); }else{ //区级为空的时候 国外 options2Items_01.add(""); } options3Items.add(options3Items_01); ArrayList<String> options3Items_01_01=new ArrayList<String>(); options3Items_01_01.add(""); options3Items_01.add(options3Items_01_01); } } catch (IOException e) { e.printStackTrace(); } } public static String getTime(Date date) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); return format.format(date); }}
demo下载地址
2 1
- 基于github 开源框架Android-PickerView-master实现省市三级联动
- android:省市县三级联动(基于json和spring)
- ajax实现省市三级联动
- 实现省市县三级联动
- 文件实现省市三级联动
- Android, 省市县三级联动
- android 三级联动开源框架用法
- android与HTML5相结合实现的省市县三级联动
- android与HTML5相结合实现的省市县三级联动
- android与HTML5相结合实现的省市县三级联动
- yii框架中省市三级联动
- 省市县三级联动菜单实现
- Ajax实现省市三级联动V1.0
- Ajax实现省市三级联动V1.1
- Ajax实现省市县三级联动
- jQuery实现省市县三级联动菜单
- JavaScript实现省市县三级联动效果~~~
- Jscript实现省市县三级联动
- Java 把一个文件夹中的所有文件复制到另一个文件夹中
- Servlet学习笔记(一)---Servlet生命周期
- 关于二叉树的二叉链表存储结构的两道题目
- Servlet学习笔记(二)---连接Mysql
- 【OpenCV】OpenCV1.0图像直方图
- 基于github 开源框架Android-PickerView-master实现省市三级联动
- MYSQL数据库自动定期备份和恢复工具
- Servlet学习笔记(三)---Cookies
- 同源策略与JS跨域请求(图文实例详解)
- 1.《介绍Unity中C#脚本语言》
- Servlet学习笔记(四)---Session
- [网络编程]——TCP_Socket通信_聊天室_客户端多线程.初步形成
- 【C++】注册热键-RegisterHotKey
- 大数据可视化平台(前后端)