Я пытаюсь отобразить дату и время в поле EditText и сделал некоторый код здесь. Дело в том, что это работает - но только со второй попытки. Это значит, что я выбираю дату и время. Ничего не происходит, а на втором попробуйте setText (); обновляет EditText для отображения даты и времени. Однако, как вы уже догадались, я бы хотел, чтобы он немедленно обновил EditText.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_reservation);
firebaseAuth = FirebaseAuth.getInstance();
textViewUserid = findViewById(R.id.addReservation_userId_edittext);
FirebaseUser user = firebaseAuth.getCurrentUser();
textViewUserid.setText(user.getEmail());
gestureDetector = new GestureDetector(this);
mDisplayDate = findViewById(R.id.addReservation_fromTime_edittext);
mDisplayDate2 = findViewById(R.id.addReservation_toTime_edittext);
mDisplayDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
DatePickerDialog datePickerDialog = new DatePickerDialog(
AddReservationActivity.this,
android.R.style.Theme_Light,
mDateSetListener,
year,month,day);
TimePickerDialog timePickerDialog = new TimePickerDialog(
AddReservationActivity.this,
android.R.style.Theme_Light,
mTimeSetListener,
hour,minute,true);
timePickerDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
timePickerDialog.show();
datePickerDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
datePickerDialog.show();
}
});
mDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
month = month + 1;
final String date = dayOfMonth + "/" + month + "/" + year;
mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
if (minute < 10) {
String time = "" + hourOfDay + ":" + "0"+minute;
mDisplayDate.getText().toString();
mDisplayDate.setText(date + " " + time);
}else {
String time = "" + hourOfDay + ":" + minute;
mDisplayDate.getText().toString();
mDisplayDate.setText(date + " " + time);
}
}
};
}
}
Я уже несколько часов пытаюсь это исправить, просматривая все Stackoverflow и множество других сайтов. Это немного расстраивает, и я действительно надеюсь, что кто-то получит информацию о том, что я делаю неправильно.
Прошу прощения, если на сайте уже есть решение, которое я пропустил.
Заранее большое спасибо.