首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将DatePickerDialog默认日期更改为用户最近选择的日期?

要将DatePickerDialog的默认日期更改为用户最近选择的日期,可以通过以下步骤实现:

  1. 获取用户最近选择的日期:在用户选择日期后,将选择的日期保存在一个变量中,以便后续使用。
  2. 设置DatePickerDialog的默认日期:在创建DatePickerDialog时,通过调用setDate方法,将保存的最近选择日期设置为默认日期。

下面是一个示例代码,演示如何实现上述步骤:

代码语言:txt
复制
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {

    private Button datePickerButton;
    private Calendar calendar;
    private int year, month, day;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        datePickerButton = findViewById(R.id.datePickerButton);

        // 获取保存的最近选择日期
        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
        long recentDateInMillis = sharedPreferences.getLong("recent_date", 0);

        calendar = Calendar.getInstance();
        if (recentDateInMillis != 0) {
            calendar.setTimeInMillis(recentDateInMillis);
        }

        year = calendar.get(Calendar.YEAR);
        month = calendar.get(Calendar.MONTH);
        day = calendar.get(Calendar.DAY_OF_MONTH);

        // 设置按钮文本为最近选择日期
        datePickerButton.setText(year + "-" + (month + 1) + "-" + day);

        datePickerButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 创建DatePickerDialog并设置默认日期
                DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDayOfMonth) {
                        // 保存最近选择日期
                        calendar.set(selectedYear, selectedMonth, selectedDayOfMonth);
                        long recentDateInMillis = calendar.getTimeInMillis();
                        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
                        SharedPreferences.Editor editor = sharedPreferences.edit();
                        editor.putLong("recent_date", recentDateInMillis);
                        editor.apply();

                        // 更新按钮文本为最近选择日期
                        datePickerButton.setText(selectedYear + "-" + (selectedMonth + 1) + "-" + selectedDayOfMonth);
                    }
                }, year, month, day);

                datePickerDialog.show();
            }
        });
    }
}

在上述示例代码中,我们使用SharedPreferences来保存最近选择的日期,并在每次打开DatePickerDialog时,将保存的日期作为默认日期进行设置。同时,通过点击按钮,可以弹出DatePickerDialog进行日期选择,并将选择的日期保存并更新按钮文本。

这是一个基本的实现示例,你可以根据自己的需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django 如何使用日期时间选择器规范用户时间输入示例代码详解

如果你模型中含有 datetime 类型字段,表单中需要用户输入日期和时间,那么你如何保证不同用户输入时间都遵循一定格式 (DD/MM/YYYY 或者 YYYY-MM-DD) 是个必须要考虑问题...一个更好方式是在前端使用日期时间选择器 DateTimePicker,以日历形式统一选择输入时间,如下图所示。...,美观日期和时间选择器就出现了,如下图所示: ?...Django 表单会默认为每个输入字段 id 加上 id_前缀。...总结 到此这篇关于Django 如何使用日期时间选择器规范用户时间输入文章就介绍到这了,更多相关 Django 如何使用日期时间选择器规范用户时间输入内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持

5.9K20

Android弹出DatePickerDialog并获取值方法

本文实例为大家分享了Android弹出DatePickerDialog并获取值具体代码,供大家参考,具体内容如下 目标效果: ?...主界面有一个TextView,点击弹出日期选择器对话框,默认显示当前日期选择后点击确定可以在TextView中显示选择值。 1.activity_main.xml页面定义TextView。...DatePicker arg0, int year, int month, int day) { tvShowDialog.setText(year+"-"+(++month)+"-"+day); //将选择日期显示到...(MainActivity.this, 0,listener,year,month,day);//后边三个参数为显示dialog时默认日期,月份从0开始,0-11对应1-12个月 dialog.show...(); break; default: break; } } } 3.需要注意是,获取日期时月份是从0开始,另外打开对话框时默认月份也是从0开始,因为month本来就是系统中获取

1.2K20

vue+element踩坑记-根据用户选择日期重置当前表头第一位

需求分析 我记得之前我是写过一篇文章,写是怎么根据用户选择天数来重置当前表头数量,那么当时我写是将天数改变,但是一直没有改变是开始日期,我当时写是没有处理好第一天日期,所以一直没有更新,...那么其实我们既然是需要定制自己表头的话,开始日期一般是不会固定,所以我们今天就简单写一下怎么根据用户输入日期来改变表头第一天日期。..." size="mini" @change="set_time" placeholder="选择开始时间... /** * @set_time 重置用户选择时间...,有的人会直接重置当前用户选择日期,而不是最终赋值那个数据,那么其实是不对,如果不是最终绑定数据的话,会导致一个问题是我们数据会被不停重置,而不是我们需要数据,自己时候就会明白了。

71410

Flutter 时间选择组件

在Flutter 应用开发过程中,或多或少都会涉及到时间选择器相关内容。...Flutter默认提供了DatePicker日期选择器,如果对样式没有特殊要求,那么可以使用它来进行时间选择默认样式如下所示。...不管,为了快速进行开发我们可以选择一些第三方组件库,如flutter_custom_calendar,此库具有如下功能: 支持公历,农历,节气,传统节日,常用节假日 日期范围设置,默认支持最大日期范围为...1971.01-2055.12 禁用日期范围设置,比如想实现某范围日期内可以点击,范围外日期置灰 支持单选、多选模式,提供多选超过限制个数回调和多选超过指定范围回调。...跳转到指定日期默认支持动画切换 自定义日历Item,支持组合widget方式和利用canvas绘制方式 自定义顶部WeekBar 根据实际场景,可以给Item添加自定义额外数据,实现各种额外功能

3.5K30

Android开发笔记(二十三)文件对话框FileDialog

日期和时间对话框 对话框是人机交互有力工具,Android自带了几个常用对话框,包括AlertDialog提示对话框、ProgressDialog进度对话框、DatePickerDialog日期选择对话框...相比之下,DatePickerDialog和TimePickerDialog用不多,因为这两个对话框上文字依赖于系统语言设置,如果系统默认语言是英文,DatePickerDialog和TimePickerDialog...最后还要提供一个回调接口,用于主页面上处理日期和时间选择事件,同时在确定按钮点击事件中要触发该回调接口方法。...dialog.showTimeDialog(); } } @Override public void onDateSelect(String date) { Toast.makeText(this, "您选择日期是...要想实现一个更加完善对话框,需要在自定义对话框时继承DialogFragment类。下面用一个简单提示对话框进行说明,该对话框主要是显示一段文字,然后由用户选择“确定”或者“取消”。

3.3K30

Android常用控件(下拉列表,日期时间选择器,多选单选框)

忽然间就开学了,突然有些不知所措,刚开学事情乱糟糟堆在一块,也没有什么心思学习了。 今天课比较少,看了些关于Android常用控件知识,整理下来。...> parent, View view, int position, long id) { System.out.println("用户选择是 "+ dataSource...> parent) { } }); } } 展示如下图: image.png 日期选择器 new DatePickerDialog(ChooseADate.this, new DatePickerDialog.OnDateSetListener...System.out.println(theDate); btnChooseDate.setText(theDate); } },2016,2,30).show(); image.png 非常好看一个日历控件...时间选择器 和日期选择器类似 new TimePickerDialog(ChooseTime.this, new TimePickerDialog.OnTimeSetListener() { @Override

3K40
领券