Как я могу показать выбранную дату и название дня только после выбора его из Datepickerdialog в Android Studio? - PullRequest
0 голосов
/ 05 января 2019

У меня есть два макета: один для отображения сегодняшней даты, а другой для отображения завтрашней даты с использованием фрагментов. В настоящее время я правильно получаю сегодняшнюю дату и название дня (субботу) без каких-либо проблем в следующем формате: 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, один для получения месяца и даты, а другой для получения дня. Пожалуйста, помогите мне.

...