簡體   English   中英

如何在 android 日期選擇器中將特定選擇的日期設置為最小日期? (爪哇)

[英]How can I set the specific selected date to min date in android date picker? (java)

我有 2 個 DatePicker,一個是開始日期選擇器,另一個是結束日期選擇器。 我想將結束 DatePicker 的最小日期設置為用戶選擇的開始日期。

我設置了用戶在 Calander startDate 中選擇的數據,並在結束日期將此數據設置為 MinDate。 我已經嘗試過這種方式,但它不起作用:(

我不能使用Mateiral Range Date Picker,因為我必須使用特定的主題。 另外我不擅長編程,所以如果你能詳細解釋一下,我將不勝感激。

ipDcEventStartDay.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v){
        final Calendar c = Calendar.getInstance();

        startYear = c.get(Calendar.YEAR);
        startMonth = c.get(Calendar.MONTH);
        startDay = c.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog dpd = new DatePickerDialog(DoubleCheckEventActivity.this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                startYear = year;
                startMonth = month+1;
                startDay = dayOfMonth;

                ipDcEventStartDay.setText(startYear + " - " + startMonth + " - " + startDay);
                ipDcEventStartDay.setTextColor(Color.parseColor("#000000"));
            }
        }, startYear, startMonth, startDay);
        dpd.show();
    }
});

Calendar startDate = Calendar.getInstance();
startDate.set(Calendar.YEAR, startYear);
startDate.set(Calendar.MONTH, startMonth);
startDate.set(Calendar.DAY_OF_MONTH, startDay);

ipDcEventEndDay.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        final Calendar c = Calendar.getInstance();

        endYear = c.get(Calendar.YEAR);
        endMonth = c.get(Calendar.MONTH);
        endDay = c.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog dpd = new DatePickerDialog(DoubleCheckEventActivity.this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                endYear = year;
                endMonth = month;
                endDay = dayOfMonth;

                ipDcEventEndDay.setText(endYear + " - " + (endMonth+1) + " - " + endDay);
                ipDcEventEndDay.setTextColor(Color.parseColor("#000000"));
            }
        }, endYear,endMonth, endDay);
        dpd.getDatePicker().setMinDate(startDate.getTimeInMillis());
        dpd.show();
    }
});

這段代碼:

startDate.set(Calendar.YEAR, startYear);
startDate.set(Calendar.MONTH, startMonth);
startDate.set(Calendar.DAY_OF_MONTH, startDay);

應該在里面

ipDcEventEndDay.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
}

因為startYearstartMonthstartDay僅在ipDcEventStartDay.setOnClickListener()上設置,所以一開始它們有一些值,但不是在ipDcEventStartDay.setOnClickListener()上設置的值

因此,在ipDcEventEndDay.setOnClickListener()中,您必須在startDate上再次設置在另一個DatePickerDialog上選取的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM