首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓系统中的动态TimePicker对话框

安卓系统中的动态TimePicker对话框
EN

Stack Overflow用户
提问于 2017-04-05 12:52:53
回答 2查看 960关注 0票数 0

我有一个在android中制作动态时间选择器对话框的需求。基本上,每次我从日历中选择日期时,时间都会发生变化,并且每次的范围都会发生变化。因此,假设在2017年4月5日,时间范围为9-2,最小值必须为9,最大值必须为2,增量为1。到目前为止,我所做的只是设置了一个时间选择器对话框

代码语言:javascript
复制
private void calltimerange() {
        Calendar mcurrentTime = Calendar.getInstance();
        int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
        int minute = mcurrentTime.get(Calendar.MINUTE);
        final TimePickerDialog mTimePicker;

        mTimePicker = new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
              //  Toast.makeText(context, "" + selectedHour + ":" + selectedMinute, Toast.LENGTH_SHORT).show();
                tvTime.setText(String.valueOf(selectedHour));
                mytime = String.valueOf(selectedHour);
            }

        }, hour, minute, true);//Yes 24 hour time
        mTimePicker.setTitle("Select Time");
        mTimePicker.show();

    }

任何帮助都将不胜感激。谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-04-05 13:04:01

如果你想用简单的方式,我建议你使用:

MaterialDateTimePicker by wdullaer

并查找此功能:

  • setMinTime(Timepoint时间)

设置要选择的最小有效时间。当天早些时候的时间值将是deactivated

  • setMaxTime(Timepoint时间)

设置要选择的最大有效时间。当天晚些时候的时间值将是deactivated

  • setSelectableTimes(Timepoint[]时间)

您可以传入一个时间点数组。这些值是选取器中唯一有效的选择。setMinTime(时间点时间)和setMaxTime(时间点时间)将进一步削减此列表。

票数 1
EN

Stack Overflow用户

发布于 2017-04-05 13:23:05

代码语言:javascript
复制
private void editTextDatePicker() {

    final EditText et_datepicker = new EditText(this);
    final SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MM-yyyy", Locale.US);
    et_datepicker.setLayoutParams(lparams);
    et_datepicker.setPadding(20, 10, 20, 10);
    et_datepicker.setHint("Pick your Date");
    et_datepicker.setFocusable(false);
    et_datepicker.setGravity(1);
    et_datepicker.setBackgroundResource(R.drawable.edittext_background);
    Calendar newCalendar = Calendar.getInstance();
    final DatePickerDialog datepicker = new DatePickerDialog(this, R.style.dialogTheme, new DatePickerDialog.OnDateSetListener() {

        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            Calendar newDate = Calendar.getInstance();
            newDate.set(year, monthOfYear, dayOfMonth);
            et_datepicker.setText(dateFormatter.format(newDate.getTime()));
        }

    }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
    et_datepicker.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            datepicker.show();
        }
    });
    linerLayoutChild.addView(et_datepicker); // here lineaLayoutChild is the object for your layout where you want to add. 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43222087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档