Saya sudah mendapatkan DatePicker yang muncul ketika pengguna mengklik bidang EditText
eReminderDate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//To show current date in the datepicker
Calendar mcurrentDate = Calendar.getInstance();
int mYear = mcurrentDate.get(Calendar.YEAR);
int mMonth = mcurrentDate.get(Calendar.MONTH);
int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);
DatePickerDialog mDatePicker;
mDatePicker = new DatePickerDialog(AddReminder.this, new OnDateSetListener() {
public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
// TODO Auto-generated method stub
/* Your code to get date and time */
selectedmonth = selectedmonth + 1;
eReminderDate.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
}
}, mYear, mMonth, mDay);
mDatePicker.setTitle("Select Date");
mDatePicker.show();
}
});
Saya sudah mencoba melakukan TimePicker dengan cara yang sama tetapi tidak dapat membuatnya berfungsi. Ini adalah usaha saya untuk membuatnya bekerja
eReminderTime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(AddReminder.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
eReminderTime.setText( ""selectedHour + ":" + selectedMinute);
}
}, hour, minute);
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
});
Apakah tidak mungkin melakukannya seperti yang saya lakukan untuk DatePicker?
Saya sudah mencoba bahkan hanya membuat TimePicker muncul setelah bidang EditText diklik dengan kode ini.
eReminderTime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(TIME_DIALOG_ID);
}
});
Untuk beberapa alasan ketika saya memasukkannya ke dalam Android Studio, 'showDialog' telah dicetak.
Adakah yang bisa memberi saya tip tentang kesalahan yang saya alami? Atau apakah saya hanya harus menggunakan DialogFragment Kustom?
android
android-timepicker
Mark O'Sullivan
sumber
sumber
Jawaban:
Anda kehilangan
+
antara""
dan jam yang dipilih,setText
metode hanya mengambil satu string, jadi Anda perlu menggabungkan semua bagian (tanda kutip pertama mungkin tidak diperlukan).Itu seharusnya memperbaiki kesalahan kedua Anda, Anda tidak memberikan parameter terakhir. Pembuat TimePickerDialog
sumber
Mengapa tidak menulis dengan cara yang dapat digunakan kembali?
Buat kelas SetTime:
Kemudian panggil dari fungsi onCreate:
sumber
Anda dapat menggunakan kode di bawah ini di onclick listener dari edittext
Anda dapat melihat kode lengkapnya di contoh Timepicker Android
sumber
Saya memperluas solusi bagus yang dapat digunakan kembali dari @Sumoanand untuk mendukung perubahan fokus dan pendengar klik saat mengubah waktu beberapa kali. Juga memperbarui kalender pemilih untuk mengingat waktu yang dipilih terakhir + pemformatan HH: mm
Penggunaan dari onCreate:
sumber
Saya tidak tahu apakah ini akan berhasil untuk Anda, itu berhasil untuk saya dengan baik.
Buat metode untuk dialog pemilih Tanggal / Waktu.
dan kemudian, di mana pun Anda mau, Anda dapat melakukannya seperti ini
harap Anda menemukan ini sebagai solusi Anda.
sumber
Anda belum meletakkan argumen terakhir di
TimePickerDialog
.ini adalah kode dari
TimePickerclass
. itu membutuhkan argumen booleanis24HourView
sumber
sumber
sumber
Bagi saya dialog muncul lebih dari satu jika saya mengklik teks edit dpFlightDate lebih dari satu kali sama untuk dialog timmer. bagaimana caranya agar dialog ini tidak muncul hanya sekali dan jika pengguna mengklik untuk kedua kalinya, dialog tidak boleh muncul lagi, yaitu jika dialog ada di layar?
sumber