Android 好用的三方选择器,常用的时间,条件,三级联动等
下面简单介绍时间,条件,联动
首先第一步加载三方依赖:
compile ‘com.contrarywind:Android-PickerView:4.1.6’
下面代码示例
1.时间
//时间选择器------设置开始时间和结束时间
//注意 月份是从0-11 代表了 1-12月
Calendar selectedDate = Calendar.getInstance();
Calendar startDate = Calendar.getInstance();
//startDate.set(2013,1,1);
Calendar endDate = Calendar.getInstance();
//endDate.set(2020,1,1);
//正确设置方式 原因:注意事项有说明
startDate.set(2013,0,1);
endDate.set(2020,11,31);
TimePickerView pvTime = new TimePickerBuilder(PickerViewActivity.this, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {
Toast.makeText(PickerViewActivity.this, getTime(date), Toast.LENGTH_SHORT).show();
}
}).setTimeSelectChangeListener(new OnTimeSelectChangeListener() {
@Override
public void onTimeSelectChanged(Date date) {
Log.e("TAG", "onTimeSelectChanged");
}
})
.setType(new boolean[]{true, true, true, true, true, true})
.setDate(selectedDate)// 如果不设置的话,默认是系统时间*/
.setRangDate(startDate,endDate)//起始终止年月日设定
.isDialog(true) //默认设置false ,内部实现将DecorView 作为它的父控件。
.build();
Dialog mDialog = pvTime.getDialog();
if (mDialog != null) {
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
Gravity.BOTTOM);
params.leftMargin = 0;
params.rightMargin = 0;
pvTime.getDialogContainerLayout().setLayoutParams(params);
Window dialogWindow = mDialog.getWindow();
if (dialogWindow != null) {
dialogWindow.setWindowAnimations(com.bigkoo.pickerview.R.style.picker_view_slide_anim);//修改动画样式
dialogWindow.setGravity(Gravity.BOTTOM);//改成Bottom,底部显示
}
}
pvTime.show(view);
以上 时间选择完毕以上已经设置完成,效果图如下:
2.条件选择示例代码:
//条件选择器
OptionsPickerView pvOptions = new OptionsPickerBuilder(PickerViewActivity.this, new OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int options1, int option2, int options3, View v) {
//返回的分别是三个级别的选中位置
String tx = options1Items.get(options1).getPickerViewText()
+ options2Items.get(options1).get(option2);
// + options3Items.get(options1).get(option2).get(options3).getPickerViewText();
btn2.setText(tx);
}
}).build();
pvOptions.setPicker(options1Items, options2Items);//二级选择器
// pvOptions.setPicker(options1Items, options2Items, options3Items);
pvOptions.show();
//可根据需要自行截取数据显示
private String getTime(Date date) {
Log.d("getTime()", "choice date millis: " + date.getTime());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(date);
}
以上两种都是简单示例,里面可以自定义设置属性,可以自定义选择器布局,具体不多说了,最后奉上github地址,这是别人写的,我推荐给大家:https://github.com/Bigkoo/Android-PickerView
希望对大家有帮助