一 : 效果图展示
二 因为用到是第三方库,要导入下面的依赖
1 compile 'liji.library.dev:citypickerview:1.1.0'
2 xml布局:
<RelativeLayout
android:id="@+id/mDiQu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/biankuan1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="地区"
android:textColor="@color/heise"
android:textSize="16dp" />
<TextView
android:id="@+id/mDiQuSanJiLianDong"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_margin="10dp" />
</RelativeLayout>
3 主要的ManeActivity的代码:
public class MyXinXiActivity extends AppCompatActivity {
@BindView(R.id.mDiQuSanJiLianDong)
TextView mDiQuSanJiLianDong;
@BindView(R.id.mDiQu)
RelativeLayout mDiQu;
private CityPicker mCP;
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_xin_xi);
}
@OnClick({R.id.mDiQu})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.mDiQu:
mYunCityPicher();
mCP.show();
break;
}
}
public void mYunCityPicher() {
mCP = new CityPicker.Builder(MyXinXiActivity.this)
.textSize(20)
//地址选择
.title("地址选择")
.backgroundPop(0xa0000000)
//文字的颜色
.titleBackgroundColor("#0CB6CA")
.titleTextColor("#000000")
.backgroundPop(0xa0000000)
.confirTextColor("#000000")
.cancelTextColor("#000000")
.province("xx省")
.city("xx市")
.district("xx区")
//滑轮文字的颜色
.textColor(Color.parseColor("#000000"))
//省滑轮是否循环显示
.provinceCyclic(true)
//市滑轮是否循环显示
.cityCyclic(false)
//地区(县)滑轮是否循环显示
.districtCyclic(false)
//滑轮显示的item个数
.visibleItemsCount(7)
//滑轮item间距
.itemPadding(10)
.onlyShowProvinceAndCity(false)
.build();
//监听
mCP.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];
mDiQuSanJiLianDong.setText(province + city + district);
}
@Override
public void onCancel() {
}
});
}
}
好了,代码贴完了 ,是不是很简单