PickerView一种全新的选择器

         现在的绝大数app的地址选择器都是三级联动或者滚轮选择的形式,刚刚公司开发的项目弄了个新的交互,当然不仅仅可以用于省市区的选择, 只要是类似城市选择的层级形式都行,比如电商菜单分类啊等等。目前最多支持4级菜单。

效果预览

效果示例

联系方式 

效果示例

  • 如果遇到问题和建议欢迎在给我发送邮件或者加入qq群,希望让这个工程越来越完善。

PickerData方法

方法名描述
setFirstDatas(String[] mFirstDatas)第一级菜单数组
setSecondDatas(Map mSecondDatas)第二级菜单map,key对应上一级value
setThirdDatas(Map mSecondDatas)第三级菜单map,key对应上一级value
setFourthDatas(Map mSecondDatas)第四级菜单map,key对应上一级value
setHeight(int height)设置选择器高度
setPickerTitleName(String pickerTitleName)设置选择器标题
setInitSelectText(...)设置默认显示的数据(参数顺序对应层级顺序,参数个数可以自己选择)
getFirstText()获取第一级选择结果
getSecondText()获取第二级选择结果
getThirdText()获取第三级选择结果
getFourthText()获取第四级选择结果
getSelectText()获取完整选择的结果(拼接后结果)
getCurrDatas(int index,String currText)通过当前key获取指定层级的values数组

PickerView方法

方法名描述
PickerView(Activity context, PickerData pickerData)构造方法传入上下文和封装的数据
setOnPickerClickListener(OnPickerClickListener listener)设置点击事件
show(View view)显示选择器
dismiss()关闭选择器

PickerView点击事件方法

方法名描述
OnPickerClick(PickerData pickerData)数据展示列表点击事件,实时返回选择结果
OnPickerConfirmClick(PickerData pickerData)点击确定按钮的回调事件,点击后自动关闭选择器,返回选择结果

使用步骤

Step 1.PickerView

Gradle

dependencies{
    compile 'com.youth.picker:pickerview:0.0.9@aar'
}

或者引用本地lib

compile project(':PickerView')
Step 2.代码实现
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //选择器数据实体类封装
    PickerData data=new PickerData();
    //设置数据,有多少层级自己确定
    data.setFirstDatas(mProvinceDatas);
    data.setSecondDatas(mCitisDatasMap);
    data.setThirdDatas(mDistrictDatasMap);
    data.setFourthDatas(new HashMap<String, String[]>());
    //设置弹出框的高度
    data.setHeight(高度);
    //设置初始化默认显示的菜单(此方法可以选择传参数量1到4个)
    data.setInitSelectText("河北省","石家庄市","平山县");

    //初始化选择器
    pickerView=new PickerView(this,data);

    点击按钮View.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           //显示选择器
           pickerView.show(点击按钮View);
       }
    });

    //选择器点击回调
    pickerView.setOnPickerClickListener(new OnPickerClickListener() {
       //选择列表时触发的事件(手动关闭)
       @Override
       public void OnPickerClick(PickerData pickerData) {
           text.setText(pickerData.getSelectText());
           pickerView.dismiss();//关闭选择器
       }
       //点击确定按钮触发的事件(自动关闭)
       @Override
       public void OnPickerConfirmClick(PickerData pickerData) {
           text.setText(pickerData.getSelectText());
       }
    });
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值