Saya ingin menampilkan jendela popup datepicker. Saya telah menemukan beberapa contoh tetapi saya tidak mendapatkannya dengan benar. Saya punya satu edittext dan saya ingin bahwa ketika saya mengklik edittext dialog datepicker akan muncul dan setelah mengatur tanggal, tanggal akan ditampilkan dalam edittext dalam format dd / mm / yyyy. Tolong berikan saya kode sampel atau tautan yang baik.
android
android-datepicker
Surabhi Pandey
sumber
sumber
Jawaban:
Coba ini di file XML:
Sekarang di File Java:
Sekarang tambahkan metode dalam aktivitas di atas.
Tambahkan
android:focusable="false"
dalam file xml pada EditText untuk memungkinkan satu sentuhan.sumber
android:focusable="false"
danonclicklistner
android:longClickable="false"
juga. Jika tidak, pengguna dapat memunculkan opsi tempel di bidang (dan dengan demikian masukkan tanggal yang tidak valid).Tidak dapat membuat salah satu dari ini bekerja sehingga akan menambah satu saya kalau-kalau itu membantu.
Juga sesuatu yang tidak disebutkan dalam yang lain. Pastikan Anda meletakkan yang berikut ini di EditText xml.
Kalau tidak seperti dalam kasus saya Keyboard akan terus bermunculan. Semoga ini bisa membantu seseorang
sumber
sumber
Ada cara lain yang dapat digunakan kembali yang lebih baik juga:
Buat kelas:
Kemudian panggil kelas ini di bawah fungsi onCreate:
sumber
class setDate implements View.OnFocusChangeListener, DatePickerDialog.OnDateSetListener {
?FILE JAWA
sumber
Inilah cara saya melakukannya: Mirip dengan jawaban yang dipilih, tetapi menggunakan kelas dialog statis sehingga lebih dapat digunakan kembali, dan juga menggunakan onFocusChange daripada onClick.
Dan dialog datepicker.
sumber
Jawaban yang dipilih tidak cukup berfungsi untuk saya karena saya harus mengetuk kotak EditText sekali, dan kemudian ketuk lagi sebelum OnClickListener akan diaktifkan. Saya dapat memperbaiki ini dengan mengganti OnClickListener dengan OnTouchListener, kalau-kalau ada orang yang mengalami masalah serupa di sini adalah seperti apa kode saya:
sumber
# 1. Saya ingin menunjukkan datepicker dengan tanggal saat ini sebagai yang dipilih sebelumnya (saya menggunakan butterknife untuk injeksi)
2. Jika Anda ingin memilih tanggal, ganti bagian terakhir dengan
maka Anda bisa mendapatkannya menggunakan variabel myCalendar atau langsung teks pada tampilan Anda.
sumber
Solusi menggunakan fragmen, MvvmCross, dan Xamarin. Android
sumber
sumber
Kelas saya untuk pertunjukan
DatePicker
. Saya dapat menggunakan untukEditText
,TextView
atauButton
Menggunakan
sumber
Menggunakan DataBinding:
(lihat
focusable
,inputType
danonClick
)Di dalam ViewModel:
sumber
Pemakaian:
sumber
Gunakan teknik sederhana ini untuk melakukannya:
Langkah 1: BUAT DIALOG RUMAH
Langkah 2: DALAM AKTIVITAS YANG DIBUTUHKAN MENGIKUTI INI
Aktivitas harus menerapkan: DatePickerDialog.OnDateSetListener
Set onClickListener pada Tombol:
Langkah 3: Override OnDateSetListener
Karena itu kita dapat menggunakan format apa pun untuk tanggal ini :)
sumber
Saya sudah mencoba segala cara yang disarankan tetapi semuanya memiliki masalah mereka sendiri.
Solusi terbaik menurut saya adalah menggunakan tata letak bingkai seperti di bawah ini:
dan kemudian menambahkan kode DatePickerDialog yang ditulis dengan indah dalam jawaban @ Android.
sumber
Saya pikir lebih baik mengganti kelas EditText ...
Dan gunakan itu dalam XML sebagai gantinya ...
sumber
sumber
Gunakan ini
sumber
Port Kotlin, panggil fungsi setDatePicker
sumber
sumber
Coba ini
sumber
editText.setOnClickListener (View baru. OnClickListener () {
sumber
Dialog Pemilih Tanggal
sumber
Coba ini:
sumber
Anda juga dapat mengatur tanggal Minimum dan tanggal maks dengan pernyataan ini.
Catatan: tambahkan baris ini sebelum datepickerDialog.show (); pernyataan Anda akan mendapatkan tanggal dengan seperti ini = 12/2/2017.
Saya harap jawaban saya akan membantu.
sumber
Ini bekerja untuk saya pada Januari 2020
Bagian XML:
Bagian Jawa:
sumber
Inilah fungsi ekstensi Kotlin:
Pemakaian:
Dalam Aktivitas:
Dalam Fragmen:
sumber
Solusi saya untuk Xamarin. Android dengan MvvmCross berdasarkan Linh:
Untuk vanilla Xamarin. Versi Android hanya mengganti WeakSubscribe dengan berlangganan reguler ke acara EditText's Click, tidak lupa untuk berhenti berlangganan dalam metode Buang override.
sumber