Как получить дату с calendarview?

216
03 февраля 2022, 22:50

Как получить дату с слушателяsetOnDayChangeListener виджета CalendarView и сохранить в Post.class

private void iniPopup(){
            popupAddPost = new Dialog(this);
            popupAddPost.setContentView(R.layout.popup_add_post);
            popupAddPost.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            popupAddPost.getWindow().setLayout(Toolbar.LayoutParams.MATCH_PARENT, Toolbar.LayoutParams.WRAP_CONTENT);
            popupAddPost.getWindow().getAttributes().gravity = Gravity.TOP;

            popupUserImage = popupAddPost.findViewById(R.id.popup_user_image);
            popupPostImage = popupAddPost.findViewById(R.id.popup_image);
            popupMoney = popupAddPost.findViewById(R.id.popup_money);
            popupDescription = popupAddPost.findViewById(R.id.popup_description);
            popupAddBtn = popupAddPost.findViewById(R.id.popup_add);
            popupClickProgress = popupAddPost.findViewById(R.id.popup_progressBar);
            popupCalendar = popupAddPost.findViewById(R.id.popup_calendar);
            Glide.with(Home.this).load(currentUser.getPhotoUrl()).into(popupUserImage);

            popupCalendar.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
                @Override
                public void onSelectedDayChange(@NonNull CalendarView view, final int year, final int month, final int dayOfMonth) {
                    **String date = dayOfMonth + "-" + month + "-" + year;**
                    //как это можно вытащить с слушателя и отправить в Post.class
                    //массивом пробовал никак
                    //###
                }
            });

            popupAddBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    popupAddBtn.setVisibility(View.INVISIBLE);
                    popupClickProgress.setVisibility(View.VISIBLE);

                    if(!popupMoney.getText().toString().isEmpty() && !popupDescription.getText().toString().isEmpty() && pickedImgUri != null){
                        StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("blog_images");
                        final StorageReference imageFilePath = storageReference.child(pickedImgUri.getLastPathSegment());
                        imageFilePath.putFile(pickedImgUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                            @Override
                            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                imageFilePath.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                                    @Override
                                    public void onSuccess(Uri uri) {
                                        String imageDownloadLink = uri.toString();                         
                                        //в этот post хочу сохранить в date
                                        //### 
                                        Post post = new Post(popupMoney.getText().toString(), popupDescription.getText().toString(), *date*, imageDownloadLink, currentUser.getUid(), currentUser.getPhotoUrl().toString());

                                        addPost(post);
                                    }
                                });
                            }
                        });
                    }
                    else{
                        popupAddBtn.setVisibility(View.VISIBLE);
                        popupClickProgress.setVisibility(View.INVISIBLE);
                    }
                }
            });
        }
Answer 1

Примерно вот так:

String date;
private void showDataPickerDialog() {
    if (getActivity() != null) {
        DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), dateSetListener,
                dateAndTime.get(Calendar.YEAR),
                dateAndTime.get(Calendar.MONTH),
                dateAndTime.get(Calendar.DAY_OF_MONTH));
        datePickerDialog.show();
    }
}
  private DatePickerDialog.OnDateSetListener dateSetListener =
        new DatePickerDialog.OnDateSetListener() {
            public void onDateSet(DatePicker view, int year, int month, int day) {
                Calendar calendar = Calendar.getInstance();
                calendar.set(year, month, day);
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
                date = formatter.format(calendar.getTime());
                Log.d("TAG", "onDateSet: " + date);
            }};

На выходе будет:

onDateSet: 2020-01-04

Или вот так еще можно:

  public String getCurrentDay() {
    calendar = Calendar.getInstance();
    Date tomorrow = calendar.getTime();
    SimpleDateFormat dateFormat =
        new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
    return dateFormat.format(tomorrow);
}
READ ALSO
Обновление данных на странице, без перезагрузки страницы

Обновление данных на странице, без перезагрузки страницы

Помогите пож-та Нужно в поле выбрать значение и чтоб в дрполе подставились его варианты, пример http://prntscr

85
Spring Security и аннотация доступа к контроллеру

Spring Security и аннотация доступа к контроллеру

Имеется контроллер, в котором все методы, кроме одного, доступны только администратору

128
Java: согласование thread&#39;ов

Java: согласование thread'ов

Друзья, добрый день! Взываю к помощи с многопоточностью в JavaСтоит задача реализовать простейший конвейер, на котором стоят всего два работника...

87
Java не получается послать Intent

Java не получается послать Intent

Я пытаюсь передать Intent из сервиса в MainActivity в BroadcastReciver, но либо интент не передается, либо BroadcastReciver его не принимаетНиже код Activity где я должен...

98