设置开始日期和结束日期以存储到火球云中



目前,我正在创建一个日历应用程序,基本上让员工选择开始日期和结束日期。在这些日期之间选择的持续时间将是员工选择的假期。

现在的问题是,我需要将两个日期(开始日期和结束日期(存储到firebase数据库中。我打算稍后使用这些信息,以便与可能休同一周假的其他员工比较日期(因此需要验证(。然而,使用我当前的代码,我只能创建开始日期,而不能创建结束日期,我也无法将信息存储到云中,但我很难理解如何以当前形式检索数据。

为了进一步澄清,我试图实现的是:我将有两个按钮,startDateBtnendDateBtn,这两个按钮都将初始化日历,所选日期将作为字符串存储/返回,数据将由第三个名为bookDatesBtn的按钮检索。此按钮将把数据保存到云中。

我尝试过的:

  • 使用设置为false的布尔变量,如果startDateBtn初始化,则布尔变量设置为true,这将触发if-else语句,并将开始日期的信息设置为字符串。如果endDateBtn被初始化,那么布尔变量将被设置为false,这将使结束日期的信息保持为字符串

DatePickerFragment.Java

import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import java.util.Calendar;
public class DatePickerFragment extends DialogFragment{
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getActivity(), year, month, day);
}

}

假日屏幕.Java

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.DialogFragment;
import android.app.DatePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import java.text.DateFormat;
import java.util.Calendar;
public class HolidayScreen extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_holiday_screen);
//        //Setting listener for start date button for picking date
Button startButton = (Button) findViewById(R.id.startDateButton);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment datePicker = new DatePickerFragment();
datePicker.show(getSupportFragmentManager(), "start date picker");
}
});
//Setting listener for start date button for picking date
Button endButton = (Button) findViewById(R.id.endDateButton);
endButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment datePicker = new DatePickerFragment();
datePicker.show(getSupportFragmentManager(), "end date picker");
}
});
//Setting listener for storing both dates into the cloud
Button bookButton = (Button) findViewById(R.id.bookButton);
bookButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//This is where all the logic will go, so i will retrieve the start date information and then the-
//-end date information and store into firebase database
}
});
}

@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
String currentDateString = DateFormat.getDateInstance(DateFormat.FULL).format(c.getTime());

TextView startTextView = (TextView) findViewById(R.id.startDateText);
startTextView.setText("Start Date: " + currentDateString);
}
}

XML文件将根据要求提供。

这是我的个人使用代码,它适用于我的所有设备。我认为你应该试试这个代码。。。

我想知道你必须使用哪个firebase数据库,所以在我提出建议后。。firebase实时OR云firestore用于存储数据。。。

有关整个代码,请访问我的代码链接-https://github.com/axarlotwala/CafeDelear/blob/master/app/src/main/java/com/cafedelear/aksha/cafedelear/Fragment/ProductOfferFragment.java

/*method of start offer*/
private void offerStart() {
final Calendar calendar = Calendar.getInstance();
myear = calendar.get(Calendar.YEAR);
dmonth = calendar.get(Calendar.MONTH);
mdate = calendar.get(Calendar.DAY_OF_MONTH);
dialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
start_date.setText(year + "-" + (month+1) + "-" + dayOfMonth);
}
},myear,dmonth,mdate);
dialog.show();
dialog.getDatePicker().setMinDate(calendar.getTimeInMillis());
}
private void offerEnd(){
final Calendar calendar = Calendar.getInstance();
myear = calendar.get(Calendar.YEAR);
dmonth = calendar.get(Calendar.MONTH);
mdate = calendar.get(Calendar.DAY_OF_MONTH);
calendar.roll(Calendar.DATE,1);

dialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
end_date.setText(year + "-" + (month+1) + "-" + dayOfMonth);
}
},myear,dmonth,mdate);
dialog.show();
dialog.getDatePicker().setMinDate(calendar.getTimeInMillis());
//if offer end date is selected is also start Offer date then offer end time is Date-23-59-59
}

这里是您可以理解的文本视图中的前一个或新日期,首先设置,然后使用

上次日期:

public void previousDate(Context context, TextView textView) {
mCalendarAlarm = Calendar.getInstance();
mCalendarAlarm.setTimeZone(TimeZone.getDefault());
DatePickerDialog datePickerDialog =
new DatePickerDialog(context, (view, year, monthOfYear, dayOfMonth) -> {
mCalendarAlarm.set(Calendar.YEAR, year);
mCalendarAlarm.set(Calendar.MONTH, monthOfYear);
mCalendarAlarm.set(Calendar.DAY_OF_MONTH, dayOfMonth);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
String datetime = dateFormat.format(mCalendarAlarm.getTime());
textView.setText(datetime);
}, mCalendarAlarm.get(Calendar.YEAR), mCalendarAlarm.get(Calendar.MONTH),
mCalendarAlarm.get(Calendar.DAY_OF_MONTH));
datePickerDialog.getDatePicker().
setMaxDate(mCalendarAlarm.getTimeInMillis());
datePickerDialog.show();
}

下一个日期:

public void NextDate(Context context, TextView textView) {
mCalendarAlarm = Calendar.getInstance();
mCalendarAlarm.setTimeZone(TimeZone.getDefault());
DatePickerDialog datePickerDialog =
new DatePickerDialog(context, (view, year, monthOfYear, dayOfMonth) -> {
mCalendarAlarm.set(Calendar.YEAR, year);
mCalendarAlarm.set(Calendar.MONTH, monthOfYear);
mCalendarAlarm.set(Calendar.DAY_OF_MONTH, dayOfMonth);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
String datetime = dateFormat.format(mCalendarAlarm.getTime());
textView.setText(datetime);
}, mCalendarAlarm.get(Calendar.YEAR), mCalendarAlarm.get(Calendar.MONTH),
mCalendarAlarm.get(Calendar.DAY_OF_MONTH));
datePickerDialog.getDatePicker().
setMinDate(mCalendarAlarm.getTimeInMillis());
datePickerDialog.show();
}

最新更新