我想创建一个应用程序,作为一个餐厅的服务员。
我使用时间选择器和日期选择器从用户在edittext中获取时间我把它改成了字符串,但在firebase中什么都没变。
我想知道如何在firebase中节省时间,并检查如果其他用户选择它,该时间是否保留。
我如何发送从日期拾取器到firebase的日期?
代码是:
public class Room1 extends AppCompatActivity {
boolean FBSetDate = false;
boolean FBSetTime = false;
boolean FBSetTime1 = false;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.room1);
final Calendar c = Calendar.getInstance();
final int year = c.get(Calendar.YEAR);
final int month = c.get(Calendar.MONTH);
final int day = c.get(Calendar.DAY_OF_MONTH);
final int hour = c.get(Calendar.HOUR_OF_DAY);
final int minute1 = c.get(Calendar.MINUTE);
final Calendar v = Calendar.getInstance();
final int hour2 = v.get(Calendar.HOUR_OF_DAY);
final int minute2 = v.get(Calendar.MINUTE);
final String date;
final EditText ft1 = (EditText) findViewById(R.id.ft1);
final EditText fd1 = (EditText) findViewById(R.id.fd1);
final EditText e1 = (EditText) findViewById(R.id.e1);
FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference dateRefrence = database.getReference("Date");
final DatabaseReference timeReference = database.getReference("Time");
final DatabaseReference timeReservedReference = database.getReference("Timereserved");
fd1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerDialog datepick = new DatePickerDialog(Room1.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
fd1.setText(dayOfMonth + "/" + month + "/" + year);
dateRefrence.setValue(dayOfMonth + "/" + month + "/" + year);
FBSetDate=true;
sendDataToFireBase();
}
},
year, month, day);
datepick.setTitle("select date");
datepick.show();
}
});
e1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TimePickerDialog timepickend = new TimePickerDialog(Room1.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
e1.setText(hourOfDay + ":" + minute);
FBSetTime=true;
sendDataToFireBase();
}
}, hour2, minute2, true
);
timepickend.setTitle("select time");
timepickend.show();
}
});
ft1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TimePickerDialog timepick = new TimePickerDialog(Room1.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay2, int minute2) {
ft1.setText(hourOfDay2 + ":" + minute2);
FBSetTime1=true;
sendDataToFireBase();
}
}, hour, minute1, true
);
timepick.setTitle("select time");
timepick.show();
}
}
);
}
private void sendDataToFireBase() {
if (FBSetTime1 == true && FBSetTime==true&&FBSetDate==true) {
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("Date");
myRef.setValue(ft1.getText().toString());
DatabaseReference myRef2 = database.getReference("Time");
myRef2.setValue(e1.getText().toString());
DatabaseReference myRef3 = database.getReference("Timereserved");
myRef2.setValue(fd1.getText().toString());
}
}
}
在您的代码中,您在数据(日期、时间、timerreserved)更改之前将数据保存到firebase中,因此在firebase中没有保存任何内容。当数据/时间值像这样改变时,你可以setValue
(我直接从你的帖子中的代码编辑):
public class Room1 extends AppCompatActivity {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.room1);
final Calendar c = Calendar.getInstance();
final int year = c.get(Calendar.YEAR);
final int month = c.get(Calendar.MONTH);
final int day = c.get(Calendar.DAY_OF_MONTH);
final int hour = c.get(Calendar.HOUR_OF_DAY);
final int minute1 = c.get(Calendar.MINUTE);
final Calendar v = Calendar.getInstance();
final int hour2 = v.get(Calendar.HOUR_OF_DAY);
final int minute2 = v.get(Calendar.MINUTE);
final String date;
final EditText ft1 = (EditText) findViewById(R.id.ft1);
final EditText fd1 = (EditText) findViewById(R.id.fd1);
final EditText e1 = (EditText) findViewById(R.id.e1);
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference dateRefrence = database.getReference("Date");
DatabaseReference timeReference = database.getReference("Time");
DatabaseReference timeReservedReference = database.getReference("Timereserved");
fd1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerDialog datepick = new DatePickerDialog(Room1.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
fd1.setText(dayOfMonth+"/"+month+"/"+year);
dateRefrence.setValue(dayOfMonth+"/"+month+"/"+year);
SimpleDateFormat dateFormatter ;
Date d ;
String entered_dob ;
d = new Date(year, month, day);
dateFormatter = new SimpleDateFormat("MM-dd-yyyy");
entered_dob = dateFormatter.format(fd1.getText());
}
},
year, month, day);
datepick.setTitle("select date");
datepick.show();
}
});
e1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TimePickerDialog timepickend = new TimePickerDialog(Room1.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
e1.setText(hourOfDay + ":" + minute);
timeReference.setValue(hourOfDay + ":" + minute)
}
}, hour2, minute2, true
);
timepickend.setTitle("select time");
timepickend.show();
}
});
ft1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TimePickerDialog timepick = new TimePickerDialog(Room1.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay2, int minute2) {
ft1.setText(hourOfDay2 + ":" + minute2);
timeReservedReference.setValue(hourOfDay2 + ":" + minute2);
}
}, hour, minute1, true
);
timepick.setTitle("select time");
timepick.show();
}
}
);
}
}