android中CityPicker的使用步骤
第一步:添加依赖
在module中的build.gradle文件中添加依赖
dependencies { implementation 'com.github.crazyandcoder:citypicker:6.0.2' }
第二步:将 JitPack 存储库添加到构建文件
在project中的settings.gradle文件中添加JitPack
dependencyResolutionManagement { repositories { maven { url 'https://jitpack.io' } } }
第三步:设置主题样式
将AndroidManifest.xml文件里的application标签中的android:theme样式设置为@style/AppTheme
android:theme="@style/AppTheme"
第四步:设置组件样式
在layout文件下创建activity_register.xml文件
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp"> <ImageView android:id="@+id/icon51" android:layout_width="40dp" android:layout_height="40dp" android:src="@drawable/ditu" android:layout_marginStart="40dp"/> <TextView android:id="@+id/text1" android:layout_width="match_parent" android:layout_height="40dp" android:layout_marginStart="15dp" android:layout_marginEnd="25dp" android:text="请选择地址" android:background="#ECEBEC" android:gravity="center"/> </LinearLayout>
第五步:添加预加载器
在自定义类或Activity中创建init方法,并将该方法在重写方法onCreate中调用
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); init(); }
//初始化 public void init(){ //城市选择器,预加载器 CityListLoader.getInstance().loadProData(this); //城市选择器的按钮监听事件 TextView spinner1 = (TextView) findViewById(R.id.spinner1); spinner1.setOnClickListener(v -> { Intent intent1 = new Intent(this, ProvinceActivity.class); startActivityForResult(intent1, ProvinceActivity.RESULT_DATA); }); }
第六步:获取选择数据
//城市选择器的回调方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == ProvinceActivity.RESULT_DATA) { if (resultCode == RESULT_OK) { if (data == null) { return; } //省份结果 CityBean province = data.getParcelableExtra("province"); //城市结果 CityBean city = data.getParcelableExtra("city"); //区域结果 CityBean area = data.getParcelableExtra("area"); //显示/ String cityString = province.getName()+city.getName()+area.getName(); Toast.makeText(this, cityString, Toast.LENGTH_SHORT).show(); } } }
来源:GitHub - crazyandcoder/citypicker: citypicker城市选择器,详细的省市区地址信息,支持仿iOS滚轮实现,仿京东样式,一级或者三级列表展示方式。
专心看人间!