有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    请尝试以下代码:

    TimePickerFragment timePickerFragment = new TimePickerFragment();
                timePickerFragment.setOnTimeSetListener(new OnTimeSetListener() {
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                        Calendar datetime = Calendar.getInstance();
                        Calendar c = Calendar.getInstance();
                        datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
                        datetime.set(Calendar.MINUTE, minute);
                        if (datetime.getTimeInMillis() >= c.getTimeInMillis()) {
                            //it's after current
                             int hour = hourOfDay % 12;
                        btnPickStartTime.setText(String.format("%02d:%02d %s", hour == 0 ? 12 : hour,
                                minute, hourOfDay < 12 ? "am" : "pm"));
                        } else {
                            //it's before current'
                            Toast.makeText(getApplicationContext(), "Invalid Time", Toast.LENGTH_LONG).show();
                        }
                    }
                });
                timePickerFragment.show(getSupportFragmentManager(), "TIME");
    

    它将显示timepicker对话框,如果用户选择当前时间之前的任何时间。。。它将显示无效时间

    编辑 您需要导入:

    import android.app.TimePickerDialog;
    import android.app.Fragment;
    import android.app.DialogFragment;
    import java.util.Calendar;
    import android.widget.TimePicker;
    

    这是一个很好的Example

  2. # 2 楼答案

    最好的解决方案是使用this材质设计库选择时间或日期并设置最小值

        TimePickerDialog tpd = TimePickerDialog.newInstance(
            new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) {
                    //put some interesting code
                }
            },
            now.get(Calendar.HOUR_OF_DAY),
            now.get(Calendar.MINUTE),
            true
        );
        tpd.setMinTime(10, 0, 0); // MIN: hours, minute, secconds
        tpd.show(getFragmentManager(), "TimePickerDialog");
    

    The easiest way to add the Material DateTime Picker library to your project is by adding it as a dependency to your build.gradle

    dependencies {
        compile 'com.wdullaer:materialdatetimepicker:3.0.0'
    }
    

    希望这对你有帮助