【问题标题】:Show the current date in a Datepicker在 Datepicker 中显示当前日期
【发布时间】:2021-07-02 05:10:45
【问题描述】:

我有两个问题;我的应用程序有 2 个 textview 日期选择器,我将使用这两个日期选择器来记录。

我的问题是:

1.- 在显示日期选择器(选择日期的框)时,我该怎么做;选择当前日期。

2.-如何根据我的代码验证开始日期和结束日期;或者我可以通过什么方式做到这一点。

[在此处输入图片描述][1] [1]:https://i.stack.imgur.com/nYhiq.jpg

开始日期

public void StartDate(View view){
    Calendar FI= Calendar.getInstance();
    diaI=FI.get(Calendar.DAY_OF_MONTH);
    mesI=FI.get(Calendar.MONTH);
    anioI=FI.get(Calendar.YEAR);

    DatePickerDialog datePickerDialog= new DatePickerDialog(this,new DatePickerDialog.OnDateSetListener() {
        @SuppressLint("SetTextI18n")
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            editTextFechaInicio.setText(dayOfMonth+"/"+(monthOfYear+1)+"/"+year);
        }
    }, diaI,mesI,anioI);
    datePickerDialog.show();
}

结束日期

public void EndDate(View view){
    final Calendar FF= Calendar.getInstance();
    diaF=FF.get(Calendar.DAY_OF_MONTH);
    mesF=FF.get(Calendar.MONTH);
    anioF=FF.get(Calendar.YEAR);

    DatePickerDialog datePickerDialog= new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
            editTextFechaFinal.setText(dayOfMonth+"/"+(month+1)+"/"+year);
        }
    }, diaF,mesF,anioF);
    datePickerDialog.show();
}

【问题讨论】:

    标签: java android-studio datepicker


    【解决方案1】:

    1 的答案:使用 GregorianCalendar 代替 Calender,如下所示:

    GregorianCalendar gc = new GregorianCalendar()
    int defaultDay = gc.get(Calender.DAY_OF_MONTH)
    int defaultMonth = gc.get(Calender.MONTH)
    int defaultYear = gc.get(Calender.YEAR)
    
    String startDate;
    DatePickerDialog dpd = new DatePickerDialog(ctx, new DatePickerDialog.OnDateSetListener() {
                        @Override
                        public void onDateSet(DatePicker datePicker, int year, int month, int day) {
                            startDate = day + "/" + (month+1) + "/" + year
                            btndate.setText(startDate);
                        }
                    },DefaultYear,DefaultMonth,DefaultDate);
    dpd.show();
    
    

    答案 2:隐藏从开始日期到结束日期 DatePicker 的旧日期

    endDatePickerDialog.getDatePicker().setMinDate(startDate)
    

    希望这有帮助。

    【讨论】:

    • 是的,它为我服务,感谢您抽出时间回复,非常感谢。这个“endDatePickerDialog.getDatePicker().SetMinDate(startDate)”我无法推断在结束日期放置它的位置,请你解释一下好吗?
    • 放在 endDatePickerDialog 的 init 之后
    猜你喜欢
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    相关资源
    最近更新 更多