У меня есть два макета: один для отображения сегодняшней даты, а другой для отображения завтрашней даты с использованием фрагментов. В настоящее время я правильно получаю сегодняшнюю дату и название дня (субботу) без каких-либо проблем в следующем формате: 05 января-2019 суббота. Но я получаю эту дату, не выбирая ее в диалоговом окне выбора даты. Эта дата появляется автоматически без какой-либо причины в макете, как только открывается диалог выбора даты. Но мне нужно получить его только после выбора в диалоге выбора даты. Как я могу это сделать?
Вот мой класс MainFragment:
public class PhotosFragment extends Fragment {
LinearLayout layout1, layout2, layout3, todayLayout, tomorrowLayout;
ImageView calendarImgView;
public static TextView todayDate, todayDay;
Activity activity;
public static final String TAG = PhotosFragment.class.getSimpleName();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_photos, container, false);
activity = getActivity();
Initialization(view);
return view;
}
public void Initialization(View view) {
layout1 = (LinearLayout) view.findViewById(R.id.layout1);
layout2 = (LinearLayout) view.findViewById(R.id.layout2);
layout3 = (LinearLayout) view.findViewById(R.id.layout3);
todayDate = (TextView) view.findViewById(R.id.todayDate);
todayDay = (TextView) view.findViewById(R.id.todayDay);
todayLayout = (LinearLayout) view.findViewById(R.id.todayLayout);
tomorrowLayout = (LinearLayout) view.findViewById(R.id.tomorrowLayout);
calendarImgView = (ImageView) view.findViewById(R.id.calendarImgView);
calendarImgView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
DialogFragment newFragment = new SelectDateFragment();
newFragment.show(getFragmentManager(), "DatePicker");
}
});
}
public static class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
SimpleDateFormat month_date = new SimpleDateFormat("dd - MMMM - yyyy");
SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
Date d = new Date();
final String dayname = sdf.format(d);
todayDay.setText(dayname);
final String ma = month_date.format(calendar.getTime());
todayDate.setText(ma);
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
populateSetDate(yy, mm + 1, dd);
}
public void populateSetDate(int year, int month, int day) {
}
}
}
Я использую событие click в imageView, чтобы вызвать событие для диалогового окна DatePicker. Пожалуйста, дайте мне знать, где совершена ошибка? Я использую два класса SimpleDateformat, один для получения месяца и даты, а другой для получения дня. Пожалуйста, помогите мне.