最近有需求需要实现省市区三级联动,但是发现之前的实现不够灵活,自己做了一些优化。为了方便以后使用,抽离出来放在了github上WheelView。同时把其核心库放在了JCenter中了,可以直接引用。也可以参考项目中的Demo进行引用
下面介绍一下如何使用
如果用的是AndroidStudio那么直接在build.gradle文件中添加依赖:
dependencies {
compile 'chuck.WheelItemView:library:1.0.1'
}
成功引入库之后,可以在需要弹出省市区选择框的页面生成一AddressPickerView 实例。
pickerView = new AddressPickerView(this);
下面来说说需要的数据源,我对数据做了抽象,在使用的时候,将自己的数据model实现IWheelViewModel接口就可以了,如下:
public class AddressModel implements IWheelViewModel {
public String addressName;
public String addressId;
@Override
public String getValueString() {
return addressName;
}
@Override
public String getValueId() {
return addressId;
}
}
而后,就是讲你自己从服务器或者本地数据库得到到的数据按照一定的格式组件成三级数据List,这里可能会有一点复杂,需要在组装的过程中小心一定,省市区要对应不然数据会错乱。组装数据源,最后得到省市区对应的List:
private List<IWheelViewModel> mOneItems = new ArrayList<>();
private List<List<IWheelViewModel>> mTwoItems;
private List<List<List<IWheelViewModel>>> mThreeItems;
将数据源填充到View中:
//设置三级数据
pickerView.setPickerData(mOneItems, mTwoItems, mThreeItems, true);
给确定和关闭按钮设置监听: