项目正好有类似需求,这里直接上一个轮子:PickerView,GitHub地址
具体实现关键代码:
private OptionsPickerView pvOptions; //定义选择器
@Override
public void initView() {
initOptionPicker(); //一定要在开始调用方法初始化选择器
}
//初始化选择器方法具体参数参考github
private void initOptionPicker() {
//条件选择器初始化
pvOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int options1, int options2, int options3, View v) {
//这边是确认事件
channelIndex = options1;
channelNoName = channelList.get(options1).getName();
channelNoNum = channelList.get(options1).getChannel();
channelPkId = channelList.get(options1).getPkId();
DialogHelper.showDialog(mContext, "正在加载");
getDeviceInfo(pkId, channelNoNum);
}
})
.setTitleText("请选择")
.setContentTextSize(20)
.setDividerColor(Color.LTGRAY)
.setSelectOptions(0)
.setBgColor(Color.WHITE)
.setTitleBgColor(Color.GRAY)
.setTitleColor(Color.BLACK)
.setCancelColor(Color.WHITE)
.setSubmitColor(Color.RED)
.isRestoreItem(true)
.setOutSideColor(0x00000000)
.setOptionsSelectChangeListener(new OnOptionsSelectChangeListener() {
@Override
public void onOptionsSelectChanged(int options1, int options2, int options3) {
//滑动事件
}
})
.build();
pvOptions.setPicker(testList);
}
//点击事件
@OnClick({R.id.lySwitch})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.lySwitch:
pvOptions.show(); //显示选择器
break;
}
}
实现效果: