Android Timepicker Kullanımı

Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız/yayınladığımız Android Eğitimleri yazı serimizde bu dersimizde Android Timepicker Kullanımı ile devam ediyoruz.

Uygulamalarımızda kullanıcılardan çeşitli formatlarda ve tiplerde veri girmesini isteyebiliriz. Bu verilerden bir tanesi de saat bilgisidir. Kullanıcıdan saat bilgisini alırken edittext yardımıyla (edittext’e manuel veri girişi yaparak) da bu işlemi yapabiliriz. Fakat editText’e manuel saat girişi yapılması durumunda, alacağımız saat bilgisinin bizim istediğimiz formata uygun olup-olmadığını kontrol etmek için de yardımcı utils classları/fonksiyonları kullanmamız gerekecektir. Bu durum ise hem runtime esnasında cihazı yoracaktır hem de geliştirme aşamasında fazladan efor sarf etmemize sebep olacaktır.

İşte tam da bu noktada Timepicker imdadımıza koşuyor ve kullanıcıdan, istediğimiz formatta saat bilgisini almamıza yardımcı oluyor.

Android Timepicker

Android kodlamasına geçecek olursak, Timepicker konusunu iki farklı örnekle açıklamak istedim.

1- Timepicker Component’ini kullanarak kullanıcıdan saat bilgisini almak isteyenler için bir örnek.

2- Calendar ve TimePickerDialog nesnelerini kullanarak kullanıcıdan saat bilgisini almak isteyenler için bir örnek.

Ben uygulamalarımda ikinci örnekte vermiş olduğum nesneler ile saat bilgisi almayı tercih ediyorum.

1-Timepicker Component’ini Kullanarak Saat Bilgisini Almak

Bu örneğimizde, kullanıcı ekran üzerinde herhangi bir butona basmadan timepicker componenti üzerinden saat ile ilgili seçimini yapabilecektir. Öncelikle layout kısmını oluşturalım:

Yukarıda gördüğümüz ilk Layoutumuzda  TimePicker, Textview ve Button’lar kullanarak bir görünüm oluşturduk. Amacımız, TimePicker’dan alınan değeri formatlı olarak textview’a yazdırmak ve kullanıcı istediği zaman AM/PM çevirimini yapmasını sağlamak.

Öncelikle Timepicker widgetının change listener’ını, değer değiştikçe handle edip, time_textview’a yazacak fonksiyonu oluşturalım.

Daha sonra ise butona tıklayınca saat bilgisini formatlı olarak time_textview’a ve toast mesajına yazdıran fonksiyonu oluşturalım:

12 / 24 saat dilimi çevirimini yapmak için oluşturduğumuz fonksiyonumuz:

12/24 saat zaman dilimi AM/PM stringleri olarak return eden fonksiyonumuz:

Saat çevirimini 12/24 saat dilimine çeviren fonksiyonumuz:

Kotlin Code:

Uygulamamızın ekran görüntüsü aşağıdaki gibidir:

2- Calendar ve Timepickerdialog Nesnelerini Kullanarak Saat Bilgisini Almak

Bu örneğimizde, basit olarak kullanıcımızdan “arıza kaydı talebi” aldığımızı düşünelim. Talep açılması için Ad Soyad, Telefon Numarası ve Arızanın Saatini kullanıcıdan isteyeceğiz.

Layout’umuz:

Yukarıdaki Layout’ta kullanıcıdan arıza saati, ad-soyad ve telefon bilgilerini almak için Edittext’ler oluşturduk. Burada arıza saati bilgisini almak için Edittext kullanacak olmamız dikkatinizi çekmiş olabilir. Kullanacağımız Edittext’in touch listener’ı sayesinde manuel giriş yerine TimePickerDialog nesnesini çağıracağız.

Kodları inceleyecek olursak:

Yukarıdaki setOnTouchListener fonksiyonunu kullanarak showTimeDialog fonksiyonunu çağırıyoruz.

showTimeDialog() fonksiyonunda ise;  TimePickerDialog nesnesi oluşturup, show ettikten sonra, OnTimeSetListener fonksiyonu ile  Calendar nesnesi oluşturup, oluşturulan nesne üzerinden Saat ve Dakika bilgisine ulaşabiliyoruz. Ulaştığımız bu bilgileri “HH:mm” formatında, editTextTime’a yazdırabiliyoruz.

Kotlin Code:

Uygulamamızı çalıştırdıktan sonra, açılan TimePickerDialog şu şekilde olacaktır:

TimePickerDialog Style 

Eğer TimePicakerDialog yapısında çeşitli renk değişiklikleri yapmak istersek, öncelikle bir style dosyası oluşturmalıyız.

values -> styles.xml kısmına aşağıdaki kod bloğunu koyalım.

 

Daha sonra ise DialogTimePickerActivity sınıfımızda oluşturduğumuz TimePickerDialog’u şu şekilde değiştireceğiz:

 

Tema değişikliği yaptıktan sonraki ekran görüntümüz şu şekilde olacaktır:

Style.xml‘de oluşturduğumuz yeni temadaki başlıklar ve anlamları şu şekilde:

colorControlActivated: Açılan dialog penceresinde üst bloğun rengini belirleyen parametredir.

colorControlActivated: Seçili olan saatin rengini belirleyen parametredir.

textColorPrimaryInverse: Üst kısımda yer alan yazının rengini belirleyen parametredir.

 

Evet arkadaşlar Android Timepicker Kullanımı aşamalarını sizlere detaylıca anlatmaya çalıştım. Umarım hepiniz için faydalı olmuştur.

Sıfırdan android dersleri için tıklayınız.

Mobilhanem.com üzerinden anlattığımız android uygulama geliştirme derslerine devam edeceğiz. Konu hakkında sorunuzu yorum alanından sorabilirsiniz. Konu dışı sorularınızı ve tüm yazılımsal sorularınızı sorucevap.mobilhanem.com sitemizden de sorabilirsiniz.

Bir daha ki dersimizde görüşmek dileğiyle..

19

Yakup Yazar

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?