В настоящее время я показываю текущую дату и день, а также завтрашнюю дату и день в отдельных макетах при загрузке страницы. Но мое требование состоит в том, чтобы
1) Какую бы дату я не выбрал из Datepicker,
, она должна отображаться на 1-м макете
2) Дата следующего дня должна отображаться на втором макете.
Мое 1-е требование работает нормально без каких-либо проблем. (Т.е.), независимо от того, какой день я выберу, оно отображается на 1-м макете. Нет проблем, но у меня проблема с моим вторым требованием.
Подумайте, если я выберу 25 мая 2018 года для DatePicker,
, он будет отображаться на 1-м макете, как и ожидалось, но вместо того, чтобы отображать дату следующего дня как 26 мая 2018 года, он будет отображаться как 26 июня 2016 года. Но мне нужно, чтобы он работал таким образом, чтобы, если я выберу 25 мая 2018 года в Datepicker,
, выбранная дата должна отображаться на 1-м макете, а ближайшая дата следующего дня (26-май-2018) должна отображаться на следующем макете. , Это должно быть применимо к любой дате, которую я выберу в Datepicker.
Где я ошибся?
Вот моя активность. Java :
public class PrivacyPolicyActivity extends AppCompatActivity {
LinearLayout layout1, layout2, layout3, todayLayout, tomorrowLayout;
ImageView calendarImgView;
TextView todayDate;
TextView todayDay;
TextView tommmorrowDate;
TextView tommorrowDay;
TextView todayLabel;
TextView tommorrowlabel;
DatePickerDialog datePickerDialog;
Calendar calendar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_privacy_policy);
calendar = Calendar.getInstance();
Date today = calendar.getTime();
calendar.add(Calendar.DAY_OF_YEAR, 1);
Date tomorrow = calendar.getTime();
final DateFormat dateFormat = new SimpleDateFormat("dd-MMM");
DateFormat day = new SimpleDateFormat("EEEE");
layout1 = (LinearLayout) findViewById(R.id.layout1);
layout2 = (LinearLayout) findViewById(R.id.layout2);
layout3 = (LinearLayout) findViewById(R.id.layout3);
todayDate = (TextView) findViewById(R.id.todayDate);
todayDate.setText(dateFormat.format(today));
todayDay = (TextView) findViewById(R.id.todayDay);
todayDay.setText(day.format(today));
tommmorrowDate = (TextView) findViewById(R.id.tommmorrowDate);
tommmorrowDate.setText(dateFormat.format(tomorrow));
tommorrowDay = (TextView) findViewById(R.id.tommorrowDay);
tommorrowDay.setText(day.format(tomorrow));
todayLayout = (LinearLayout) findViewById(R.id.todayLayout);
tomorrowLayout = (LinearLayout) findViewById(R.id.tomorrowLayout);
todayLabel = (TextView) findViewById(R.id.todayLabel);
tommorrowlabel = (TextView) findViewById(R.id.tommorrowlabel);
calendarImgView = (ImageView) findViewById(R.id.calendarImgView);
calendarImgView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
datePickerDialog = new DatePickerDialog(PrivacyPolicyActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int day) {
// SimpleDateFormat dateandmonth = new SimpleDateFormat("dd-MMM");
// Date date = new Date();
// String reqddate = dateandmonth.format(date);
//todayDate.setText(day + "/" + (month + 1) + "/" + year);
int cyear = datePicker.getYear();
int cmonth = datePicker.getMonth();
int cday = datePicker.getDayOfMonth();
Calendar cld = Calendar.getInstance();
cld.set(cyear, cmonth, cday);
SimpleDateFormat format = new SimpleDateFormat("dd-MMM");
String strDate = format.format(cld.getTime());
todayDate.setText(strDate);
SimpleDateFormat dayfmt = new SimpleDateFormat("EEEE");
String dayselected = dayfmt.format(cld.getTime());
todayDay.setText(dayselected);
int nextYear = datePicker.getYear() + 1;
int nextMonth = datePicker.getMonth() + 1;
int nextDay = datePicker.getDayOfMonth() + 1;
Calendar nextcld = Calendar.getInstance();
nextcld.set(nextYear, nextMonth, nextDay);
SimpleDateFormat tom_format = new SimpleDateFormat("dd-MMM");
String tom_date = tom_format.format(nextcld.getTime());
tommmorrowDate.setText(tom_date);
SimpleDateFormat day_fmt = new SimpleDateFormat("EEEE");
String tom_day = day_fmt.format(cld.getTime());
tommorrowDay.setText(tom_day);
}
}, year, month, dayOfMonth);
datePickerDialog.show();
}
});
}
}