我有一个方法可以使用日历返回当前日期,如下所示:
Calendar calendar = Calendar.getInstance();
dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
month = calendar.get(Calendar.MONTH);
year = calendar.get(Calendar.YEAR);
另一方面,我有一个DatePickerDialog,我需要用它来更新以前的值。
private void launchDatePicker() {
final Calendar calendar = Calendar.getInstance();
int nuevoDia = calendar.get(Calendar.DAY_OF_MONTH);
int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
int nuevoMes = calendar.get(Calendar.MONTH);
int nuevoAño = calendar.get(Calendar.YEAR);
DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int nuevoAño, int nuevoMes, int nuevoDia) {
//int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
dayOfMonth = nuevoDia;
month = nuevoMes;
year = nuevoAño;
fechaActual(dayOfWeek, dayOfMonth,month);
ajustarFormatoFecha();
readFromDichos();
faseLunar();
}
}
,nuevoDia,nuevoMes,nuevoAño);
datePickerDialog.show();
}
问题是这个DatePicker总是以年=1900开始,我怎么才能以当前日期开始呢?
如何使用 DatePickerDialog 获取一周之日?
您正在将错误的参数传递给 DatePickerDialog,
作为
nuevoDia,nuevoMes,nuevoAño
它应该是:新阿尼奥,新梅斯,新迪亚
你可以这样做:
private void launchDatePicker() {
Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int nuevoAño, int nuevoMes, int nuevoDia) {
//int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
dayOfMonth = nuevoDia;
month = nuevoMes;
year = nuevoAño;
fechaActual(dayOfWeek, dayOfMonth,month);
ajustarFormatoFecha();
readFromDichos();
faseLunar();
}
}
, nuevoAño, nuevoMes, nuevoDia); // <----- correct arguments ------
datePickerDialog.show();
}
FYI:
private void launchDatePicker() {
final Calendar calendar = Calendar.getInstance();
int nuevoDia = calendar.get(Calendar.DAY_OF_MONTH);
int nuevoMes = calendar.get(Calendar.MONTH);
int nuevoAño = calendar.get(Calendar.YEAR);
DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int nuevoAño, int nuevoMes, int nuevoDia) {
//int nuevoDiaSemana = calendar.get(Calendar.DAY_OF_WEEK);
dayOfMonth = nuevoDia;
month = nuevoMes;
year = nuevoAño;
Calendar c = calendar.getInstance();
c.set(year,month,dayOfMonth);
int nuevoDiaSemana = c.get(Calendar.DAY_OF_WEEK);
dayOfWeek = nuevoDiaSemana;
fechaActual(dayOfWeek, dayOfMonth,month);
ajustarFormatoFecha();
readFromDichos();
faseLunar();
}
}
,nuevoAño,nuevoMes,nuevoDia);
datePickerDialog.show();
}