首页 > 编程知识 正文

屏幕使用时间详细统计,灌流器的使用时间

时间:2023-05-04 11:18:43 阅读:270980 作者:84

 

 

 

 

一、优点

1.可扩展性很强

2.三级联动

3.单项选择

4.条件 选择

 

二、项目下载地址demo及文档传送门在这哦

 

三、效果图

                    

 

 

                        

 

四、使用步骤

 

1.添加Jcenter仓库 Gradle依赖:

compile 'com.contrarywind:Android-PickerView:3.2.7'

 

 

2.在Activity中添加如下代码:

默认的时间选择器

//时间选择器TimePickerView pvTime = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() { @Override public void onTimeSelect(Date date,View v) {//选中事件回调 tvTime.setText(getTime(date)); } }) .build(); pvTime.setDate(Calendar.getInstance());//注:根据需求来决定是否使用该方法(一般是精确到秒的情况),此项可以在弹出选择器的时候重新设置当前时间,避免在初始化之后由于时间已经设定,导致选中时间与当前时间不匹配的问题。 pvTime.show();

 

 

 

例子  选择出生年月日

private void initTimePicker1() {//选择出生年月日 //控制时间范围(如果不设置范围,则使用默认时间1900-2100年,此段代码可注释) //因为系统Calendar的月份是从0-11的,所以如果是调用Calendar的set方法来设置时间,月份的范围也要是从0-11 Date curDate = new Date(System.currentTimeMillis());//获取当前时间 SimpleDateFormat formatter_year = new SimpleDateFormat("yyyy "); String year_str = formatter_year.format(curDate); int year_int = (int) Double.parseDouble(year_str); SimpleDateFormat formatter_mouth = new SimpleDateFormat("MM "); String mouth_str = formatter_mouth.format(curDate); int mouth_int = (int) Double.parseDouble(mouth_str); SimpleDateFormat formatter_day = new SimpleDateFormat("dd "); String day_str = formatter_day.format(curDate); int day_int = (int) Double.parseDouble(day_str); Calendar selectedDate = Calendar.getInstance();//系统当前时间 Calendar startDate = Calendar.getInstance(); startDate.set(1900, 0, 1); Calendar endDate = Calendar.getInstance(); endDate.set(year_int, mouth_int - 1, day_int); //时间选择器 pvTime1 = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() { @Override public void onTimeSelect(Date date, View v) {//选中事件回调 // 这里回调过来的v,就是show()方法里面所添加的 View 参数,如果show的时候没有添加参数,v则为null /*btn_Time.setText(getTime(date));*/ textview1.setText(getTime(date)); } }) .setType(new boolean[]{true, true, true, false, false, false}) //年月日时分秒 的显示与否,不设置则默认全部显示 .setLabel("年", "月", "日", "", "", "")//默认设置为年月日时分秒 .isCenterLabel(false) .setDividerColor(Color.RED) .setTextColorCenter(Color.RED)//设置选中项的颜色 .setTextColorOut(Color.BLUE)//设置没有被选中项的颜色 .setContentSize(21) .setDate(selectedDate) .setLineSpacingMultiplier(1.2f) .setTextXOffset(-10, 0,10, 0, 0, 0)//设置X轴倾斜角度[ -90 , 90°] .setRangDate(startDate, endDate)// .setBackgroundId(0x00FFFFFF) //设置外部遮罩颜色 .setDecorView(null) .build(); } private String getTime(Date date) {//可根据需要自行截取数据显示// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); return format.format(date); }

 

 

 

 

 

 

 

 

 

自定义布局

 

private void initCustomOptionPicker() {//条件选择器初始化,自定义布局 /** * @description * * 注意事项: * 自定义布局中,id为 optionspicker 或者 timepicker 的布局以及其子控件必须要有,否则会报空指针。 * 具体可参考demo 里面的两个自定义layout布局。 */ pvCustomOptions = new OptionsPickerView.Builder(this, new OptionsPickerView.OnOptionsSelectListener() { @Override public void onOptionsSelect(int options1, int option2, int options3, View v) { //返回的分别是三个级别的选中位置 String tx = cardItem.get(options1).getPickerViewText(); btn_CustomOptions.setText(tx); } }) .setLayoutRes(R.layout.pickerview_custom_options, new CustomListener() { @Override public void customLayout(View v) { final TextView tvSubmit = (TextView) v.findViewById(R.id.tv_finish); final TextView tvAdd = (TextView) v.findViewById(R.id.tv_add); ImageView ivCancel = (ImageView) v.findViewById(R.id.iv_cancel); tvSubmit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pvCustomOptions.returnData(); pvCustomOptions.dismiss(); } }); ivCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pvCustomOptions.dismiss(); } }); tvAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getCardData(); pvCustomOptions.setPicker(cardItem); } }); } }) .isDialog(true) .build(); pvCustomOptions.setPicker(cardItem);//添加数据}

 

 

 

 

 

三级联动

 

pvOptions = new OptionsPickerView.Builder(this, new OptionsPickerView.OnOptionsSelectListener() { @Override public void onOptionsSelect(int options1, int options2, int options3, View v) { //返回的分别是三个级别的选中位置 String tx = options1Items.get(options1).getPickerViewText() + options2Items.get(options1).get(options2) /* + options3Items.get(options1).get(options2).get(options3).getPickerViewText()*/; btn_Options.setText(tx); }}) .setTitleText("城市选择") .setContentTextSize(20)//设置滚轮文字大小 .setDividerColor(Color.LTGRAY)//设置分割线的颜色 .setSelectOptions(0, 1)//默认选中项 .setBgColor(Color.BLACK) .setTitleBgColor(Color.DKGRAY) .setTitleColor(Color.LTGRAY) .setCancelColor(Color.YELLOW) .setSubmitColor(Color.YELLOW) .setTextColorCenter(Color.LTGRAY) .isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。 .setLabels("省", "市", "区") .setBackgroundId(0x66000000) //设置外部遮罩颜色 .build();//pvOptions.setSelectOptions(1,1);/*pvOptions.setPicker(options1Items);//一级选择器*/pvOptions.setPicker(options1Items, options2Items);//二级选择器/*pvOptions.setPicker(options1Items, options2Items,options3Items);//三级选择器*/

 

 

 

 

 

 

时间选择器的属性大全

 

.setType(new boolean[]{true, true, true, false, false, false}) //年月日时分秒 的显示与否,不设置则默认全部显示.setLabel("年", "月", "日", "", "", "")//默认设置为年月日时分秒.setSubmitText("确定")//确定按钮文字.setCancelText("取消")//取消按钮文字.setTitleText("请选择")//标题.setSubCalSize(18)//确定和取消文字大小.setTitleSize(20)//标题文字大小.setTitleColor(Color.GREEN)//标题文字颜色.setSubmitColor(Color.GREEN)//确定按钮文字颜色.setCancelColor(Color.GREEN)//取消按钮文字颜色.setTitleBgColor(0xFF333333)//标题背景颜色 Night mode.setBgColor(0xFF000000)//滚轮背景颜色 Night mode.setOutSideCancelable(false)//点击屏幕,点在控件外部范围时,是否取消显示.isCyclic(false)//是否循环滚动.isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。.setDividerColor(Color.YELLOW)//设置分割线的颜色.setTextColorCenter(Color.RED)//设置选中项的颜色.setTextColorOut(Color.BLUE)//设置没有被选中项的颜色.setContentSize(21)//滚轮文字大小.setDate(selectedDate) 如果不设置的话,默认是系统时间*/.setLineSpacingMultiplier(1.2f)//设置两横线之间的间隔倍数.setTextXOffset(-10, 0, 10, 0, 0, 0)//设置X轴倾斜角度[ -90 , 90°].setRangDate(startDate, endDate)起始终止年月日设定.setBackgroundId(0x00FFFFFF) //设置外部遮罩颜色.setDecorView(null)//设置要将pickerview显示到的容器id 必须是viewgroup.isDialog(false)//是否显示为对话框样式

 

 

 

 

 

 

更多操作,请下载demo查看哦

 

 

 

 

 

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。