如何根据从日期选择器中选择的日期计算日期

时间:2019-10-13 08:00:51

标签: java android firebase firebase-realtime-database

我有一个日期选择器,他的结果存储在Firebase中。 在注册步骤中,用户从DatePickerDialog中选择日期,该日期在TextView中进行更新,然后将其发送到Firebase数据库。

在我的主要活动中,我想从Firebase中获取数据,并向用户显示距该事件还有多少个月和几天。

有日期选择器:

public class UserDetailsFragment extends Fragment {

    EditText etEventDate;
    Button eventDatePicker;
    Calendar c;
    DatePickerDialog dpd;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_user_details, container, false);

        etEventDate = view.findViewById(R.id.etEventDate);
        eventDatePicker = view.findViewById(R.id.eventDatePicker);

        eventDatePicker.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                c = Calendar.getInstance();
                int day = c.get(Calendar.DAY_OF_MONTH);
                int month = c.get(Calendar.MONTH);
                int year = c.get(Calendar.YEAR);

                dpd = new DatePickerDialog(getActivity(), R.style.DialogTheme, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker datePicker, int mYear, int mMonth, int mDay) {
                        etEventDate.setText(mDay + "/" + (mMonth + 1) + "/" + mYear);
                    }
                }, day, month, year);
                dpd.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
                dpd.show();
            }
        });

        return view;
    }

}

我如何将其发送到Firebase:

public void signUp(String email, String password) {
        validation = new EmailAndPasswordValidation();
        if (validation.isValidEmail(email)) {
            mAuth.createUserWithEmailAndPassword(email, password)
                    .addOnSuccessListener(new OnSuccessListener<AuthResult>() {
                        @Override
                        public void onSuccess(AuthResult authResult) {
                            user.child(mAuth.getCurrentUser().getUid()).child("UserDetails")
                                    .setValue(model.getUserInputDetails())
                                    .addOnSuccessListener(new OnSuccessListener<Void>() {
                                        @Override
                                        public void onSuccess(Void aVoid) {
                                            model.showRegisterSuccessToast();
                                            //TODO change open splash activity to open main activity.
                                            model.openSplashActivity();
                                        }
                                    }).addOnFailureListener(new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    Log.d("Failed", "Data base write failed");
                                }
                            });
                        }
                    }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.d("Failed", "Registration failed");
                }
            });
        }
    }

@Override
    public UserSingleton getUserInputDetails() {
        UserSingleton userSingleton = UserSingleton.getInstance();
        UserSingleton.getInstance().setmUserName(((EditText) userDetailsFragment.getView().findViewById(R.id.etName)).getText().toString().trim());
        UserSingleton.getInstance().setmPartnerName(((EditText) userDetailsFragment.getView().findViewById(R.id.etPartnerName)).getText().toString().trim());
        UserSingleton.getInstance().setmEventDate(((EditText) userDetailsFragment.getView().findViewById(R.id.etEventDate)).getText().toString().trim());
        UserSingleton.getInstance().setmEventLocation(((EditText) userDetailsFragment.getView().findViewById(R.id.etEventLocation)).getText().toString().trim());
        return userSingleton;

    }

有预期的结果:

enter image description here

0 个答案:

没有答案
相关问题