导航

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滚轮实现,仿京东样式,一级或者三级列表展示方式。

 

posted on 2022-03-14 16:41    阅读(1922)  评论(0编辑  收藏  举报