目前,我正在创建一个日历应用程序,该应用程序基本上会让员工选择开始日期和结束日期。在这些日期之间选择的持续时间将是员工选择的假期。
现在的问题是我需要将 2 个日期(开始日期和结束日期)存储到 firebase 数据库中。我打算稍后使用此信息,以便我可以将日期与可能在同一周休假的其他员工进行比较(因此需要验证)。但是,使用我当前的代码,我只能创建开始日期而不能创建结束日期,我也无法将信息存储到云中,但我很难理解如何以当前形式检索数据。
为了进一步澄清,我想要实现的是:我将有 2 个按钮,startDateBtn并且endDateBtn,两者都将初始化一个日历,选择的日期将作为字符串存储/返回,数据将由名为 的第三个按钮检索bookDatesBtn。此按钮会将数据保存到云中。
我试过的:
- 使用设置为 false 的布尔变量,如果
startDateBtn初始化布尔变量设置为 true,这将触发 if-else 语句并将开始日期的信息设置为字符串。如果endDateBtn已初始化,则布尔变量将设置为 false,这会将结束日期的信息保存为字符串。
日期选择器片段.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);
}
}
HolidayScreen.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 文件将根据要求提供。