要将DatePickerDialog的默认日期更改为用户最近选择的日期,可以通过以下步骤实现:
下面是一个示例代码,演示如何实现上述步骤:
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进行日期选择,并将选择的日期保存并更新按钮文本。
这是一个基本的实现示例,你可以根据自己的需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云