您的位置:首页 > 移动开发 > Android开发

Android使用开源框架Citypickerview实现省市区三级联动效果

2018-03-19 11:14 821 查看
前两天在项目中用到了添加地址的功能,想着这个应该网上有现成的轮子可以用,于是就找了一下,找到一个开源的框架Citypickerview,试了一下挺好用的,使用非常方便,分享给大家:github地址:点击打开链接
1.添加依赖:compile 'liji.library.dev:citypickerview:0.7.0'2.布局文件:
非常简单,就2个TextView来显示就可以了<LinearLayout
android:layout_marginTop="50dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="地址:"
/>

<TextView
android:id="@+id/address"
android:background="#ff00"
android:textColor="#000"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

</LinearLayout>3.在自己相应的Activity中使用地址选择器,我的是在ActivityDemo中,整个ActivityDemo的代码如下:package com.example.os.nestedscrollingdemo.view;

import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

import com.example.os.nestedscrollingdemo.R;
import com.lljjcoder.citypickerview.widget.CityPicker;

/**
* Created by OS on 2018/3/13.
*/

public class ActivityDemo extends AppCompatActivity implements View.OnClickListener {

private TextView mAddress;
/**
* 选取地址
*/

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
}

private void initView() {
mAddress = findViewById(R.id.address);
mAddress.setOnClickListener(this);
}

@Override
public void onClick(View v) {
// chooseArea(v);
selectAddress();
}

//Texview的点击事件
// public void chooseArea(View view) {
// //判断输入法的隐藏状态
// InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// if (imm.isActive()) {
// imm.hideSoftInputFromWindow(view.getWindowToken(),
// InputMethodManager.HIDE_NOT_ALWAYS);
// selectAddress();//调用CityPicker选取区域
// }
// }

private void selectAddress() {
CityPicker cityPicker = new CityPicker.Builder(ActivityDemo.this)
.textSize(14)
.title("地址选择")
.titleBackgroundColor("#FFFFFF")
// .titleTextColor("#696969")
.confirTextColor("#696969")
.cancelTextColor("#696969")
.province("北京市")
.city("北京市")
.district("朝阳区")
.textColor(Color.parseColor("#000000"))
.provinceCyclic(true)
.cityCyclic(false)
.districtCyclic(false)
.visibleItemsCount(7)
.itemPadding(15)
.onlyShowProvinceAndCity(false)
.build();
cityPicker.show();
//监听方法,获取选择结果
cityPicker.setOnCityItemClickListener(new CityPicker.OnCityItemClickListener() {
@Override
public void onSelected(String... citySelected) {
//省份
String province = citySelected[0];
//城市
String city = citySelected[1];
//区县(如果设定了两级联动,那么该项返回空)
String district = citySelected[2];
//邮编
String code = citySelected[3];
//为TextView赋值
mAddress.setText(province.trim()+ city.trim()+ district.trim());
}
});
}

}
4.ok了,上述的代码就能实现效果了,是不是非常简单呢。在这里提一下,我的在上面的设置标题颜色的时候报错了,所以我注释掉了,不影响使用。
本文章根据原作者内容改编而来,如有雷同,敬请谅解!
转载自:http://www.cnblogs.com/panhouye/archive/2017/03/08/6519582.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  地址选择器
相关文章推荐