第一步:添加依賴
在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滾輪實現,仿京東樣式,一級或者三級列表展示方式。
