Я использую datePickerDialog
в своем приложении. Я поставил текущую дату и onClickListener
как на той же textView
DatePickerDialog сбрасывает дату в Android
Первоначально TextView отображает текущую дату и когда он прослушивает нажмите событие, он показывает DatePickerDialog
Что такое моя проблема?
Когда я нажимаю на textView
он показывает мне DatePicker
с текущей датой, то я установить любую дату, новая дата теперь видна на TextView но каждый раз, когда я нажимаю на TextView он показывает текущую дату в datePickerDialog
, Я хочу, чтобы datepicker
обновил и на datePickerDialog
также.
Вот мой Activity.java
сниппет
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
//format of the current date
String currDate = new SimpleDateFormat("MM/dd/yyyy").format(new Date());
//set current date on textView
dateView = (TextView) findViewById(R.id.date_view);
dateView.setText(currDate);
dateView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DatePickerDialog dpd = new DatePickerDialog(TRTimeReminder.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
c.set(year, month, day);
String date = new SimpleDateFormat("MM/dd/yyyy").format(c.getTime());
dateView.setText(date);
}
}, mYear, mMonth, mDay);
dpd.show();
}
});
Редактировать
Я также обновил DatePickerDialog(TRTimeReminder.this,.....,mYear, mMonth, mDay)
к DatePickerDialog(TRTimeReminder.this,....., y, m, d)
где int y, m, d
переменные I, определенные внутри onDateSet()
способом, как y = year, m = month, d = day
, но когда я нажимаю TextView он показывает инициализируется дата JAN 1 1900
Я также попытался изменить его. Я взял 'int y, m, d' и определил переменные внутри' onDateSet', то есть 'y = year'' m = month' 'd = date', а затем положил' y, m, d' вместо 'mYear, mMonth , mDay'. Но когда я нажимаю на 'textView' для выбора даты, он инициализирует дату ** JAN 1 1900 ** – Apurva
Не уверен, что я понимаю изменение, которое вы описываете. Насколько я вижу вашу проблему, вы берете дату из календаря c и сохраняете ее, когда вы обновляете дату в c, вы никогда не изменяете эти сохраненные значения, а затем, когда вы открываете новый DatePickerDialog, вы используете старое значение , Почему бы не инициализировать c.get (Calendar.YEAR); вместо mYear? – Chewie
не могли бы вы объяснить в своем ответе – Apurva