Bu makalede ayrıntılı olarak Android Date Time Picker Kullanımı kullanımı anlatacağım sanki tek bir widget miş gibi duruyor ancak Date Picker ve Time Picker olarak 2 adet widget’dir. Adlarından da anlayacağınız üzere biri tarih seçimi diğeri ise zaman seçimi için kullanılıyor. Genellikle kullanıcıdan tarihsel veya zamansal bilgi istendiğinde kullanılıyor. Lafı fazla uzatmadan ilk olarak Data Picker ile makalemize başlayalım ;
Android Date Time Picker Kullanımı
Date Picker Kullanımı
Basit bir uygulama yapalım bir button olsun ona tıklandığında Data Picker açılsın ve ordan seçilen tarihi , günü, ayı ve yılı ayrı ayrı yazdıralım arkadaşlar;
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="tr.net.sercancepni.datetimepicker.MainActivity"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginStart="10dp" android:layout_marginTop="16dp" android:text="Tarih : " /> <TextView android:id="@+id/lblTarih" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/textView" android:layout_marginStart="13dp" android:layout_toEndOf="@+id/textView" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignStart="@+id/textView" android:layout_below="@+id/textView" android:layout_marginTop="15dp" android:text="Gün : " /> <TextView android:id="@+id/lblGun" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignStart="@+id/lblTarih" android:layout_alignTop="@+id/textView3" /> <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignStart="@+id/textView3" android:layout_below="@+id/textView3" android:layout_marginTop="18dp" android:text="Ay : " /> <TextView android:id="@+id/lblAy" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignStart="@+id/lblGun" android:layout_alignTop="@+id/textView5" /> <TextView android:id="@+id/textView7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignStart="@+id/textView5" android:layout_below="@+id/textView5" android:layout_marginTop="15dp" android:text="Yıl : " /> <TextView android:id="@+id/lblYil" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/textView7" android:layout_toEndOf="@+id/lblAy" /> <Button android:id="@+id/btnTarih" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/lblAy" android:layout_alignParentEnd="true" android:layout_marginEnd="36dp" android:text="Tarih Seç" /> </RelativeLayout>
Ekran Görüntüsü ;
Gelelim MainActivity ‘de gerekli tanımlamaları yapalım ve buton click oluşturalım;
package tr.net.sercancepni.datetimepicker; import android.app.DatePickerDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; import java.util.Calendar; public class MainActivity extends AppCompatActivity { TextView lblTarih,lblGun,lblAy,lblYil; Button btnTarih; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lblTarih = (TextView) findViewById(R.id.lblTarih); lblGun = (TextView) findViewById(R.id.lblGun); lblAy = (TextView) findViewById(R.id.lblAy); lblYil = (TextView) findViewById(R.id.lblYil); btnTarih = (Button) findViewById(R.id.btnTarih); btnTarih.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); } }
Şimdi burada önemli olan bir nokta var arkadaşlar android’te tarih seçerken aylar 0 dan başlıyor yani ocak ayı sıfırıncı ay olarak gözüküyor o yüzden ayı ekrana basmadan önce ayı +1 artıyoruz ;
Calendar takvim = Calendar.getInstance(); // Takvim objesini oluşturuyoruz. int year = takvim.get(Calendar.YEAR); //Güncel Yılı alıyoruz. int month = takvim.get(Calendar.MONTH); //Güncel Ayı alıyoruz. int day = takvim.get(Calendar.DAY_OF_MONTH); //Güncel Günü alıyoruz. datePicker = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int yil, int ay, int gun) { // TODO Auto-generated method stub ay +=1; // Aylar sıfırdan başladığı için ayı +1 ekliyoruz. lblTarih.setText( gun + "/" + ay+ "/"+yil); //Ekrana tüm tarihi yazdırıyoruz lblGun.setText(String.valueOf(gun)); // Seçilen günü ekrana yazdırıyoruz. lblAy.setText(String.valueOf(ay)); // Seçilen ayı ekrana yazdırıyoruz. lblYil.setText(String.valueOf(yil)); // Seçilen yılı ekrana yazdırıyoruz. } },year,month,day); //Sırasıyla set edilecek değerleri yazıyoruz. datePicker.setTitle("Tarih Seçiniz"); datePicker.setButton(DatePickerDialog.BUTTON_POSITIVE, "SEÇ", datePicker); datePicker.setButton(DatePickerDialog.BUTTON_NEGATIVE, "İPTAL", datePicker); datePicker.show();
Kodumuzu buton click içerisine yazdıktan sonra emülatör de çalıştırıyoruz ve ekrana ;
Time Picker Kullanımı
Android Date Time Picker Kullanımı ‘nda sıra geldi TimePicker Kullanımını anlatmaya TimePicker zaman seçici anlamına geliyor zamansal işlemlerde sürekli karşınıza çıkacak bir konu.
Data Picker da yaptığımız örneğin aynısını Time Picker içinde yapalım butona tıklandığında tam zamanı bir TextView yazsın ayrıca saati ve dakikayı ayrı TextView’lere yazdıralım ;
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="tr.net.sercancepni.datetimepicker.TimePicker"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginStart="10dp" android:layout_marginTop="16dp" android:text="Zaman : " /> <TextView android:id="@+id/lblZaman" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/textView" android:layout_marginStart="13dp" android:layout_toEndOf="@+id/textView" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignStart="@+id/textView" android:layout_below="@+id/textView" android:layout_marginTop="15dp" android:text="Saat : " /> <TextView android:id="@+id/lblSaat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignStart="@+id/lblZaman" android:layout_alignTop="@+id/textView3" /> <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignStart="@+id/textView3" android:layout_below="@+id/textView3" android:layout_marginTop="18dp" android:text="Dakika : " /> <TextView android:id="@+id/lblDakika" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignStart="@+id/lblSaat" android:layout_alignTop="@+id/textView5" /> <Button android:id="@+id/btnZaman" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/lblDakika" android:layout_alignParentEnd="true" android:layout_marginEnd="36dp" android:text="Zaman Seç" /> </RelativeLayout>
Ekran Görüntüsü ;
Gelelim Activitimizde gerekli olan tanımlamaları yapmaya ;
public class TimePicker extends AppCompatActivity { TextView lblZaman,lblSaat,lblDakika; Button btnZaman; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_time_picker); lblZaman = (TextView) findViewById(R.id.lblZaman); lblSaat = (TextView) findViewById(R.id.lblSaat); lblDakika = (TextView) findViewById(R.id.lblDakika); btnZaman = (Button) findViewById(R.id.btnZaman); btnZaman.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); } }
btnZaman tıklantığında yapılacak olan işlemleri yapalım (Kodların yanlarına tam olarak neler yaptığını yazdığım için ayrıca uzun uzun anlatmıyorum);
btnZaman.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Calendar mcurrentTime = Calendar.getInstance();// int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);//Güncel saati aldık int minute = mcurrentTime.get(Calendar.MINUTE);//Güncel dakikayı aldık TimePickerDialog timePicker; //Time Picker oluşturduk //TimePicker oluşturuyor ve click listener ekliyoruz timePicker = new TimePickerDialog(TimePicker.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(android.widget.TimePicker view, int hourOfDay, int minute) { lblZaman.setText( hourOfDay + ":" + minute); //Ayarla butonu tıklandığında lblZaman'a yazdırıyoruz3 lblSaat.setText(hourOfDay + " Saat"); // Sadece Saati Yazdırıyoruz lblDakika.setText(minute + " Dakika"); // Sadece Dakikayı yazdırıyoruz } }, hour, minute, true); //true 24 saatlik sistem için timePicker.setTitle("Saat Seçiniz"); timePicker.setButton(DatePickerDialog.BUTTON_POSITIVE, "Ayarla", timePicker); timePicker.setButton(DatePickerDialog.BUTTON_NEGATIVE, "İptal", timePicker); timePicker.show(); } });
Gördüğünüz gibi Android Date Time Picker Kullanımı gayet basit android ‘de istediğiniz tüm zamansal işlemleri yapabilirsiniz ayrıca projeyi tam olarak incelemek isterseniz hemen aşağıda örnek projeyi paylaştım indirip iyice inceleyebilirsiniz ;
SELAM
Sayfanızı ve açıköğretimle ilgili ders notlarınız çok faydalı bulduğumu belirtmek isterim
bununla birlikte bende 2020 yılı için 4.sınıf kamu yönetimi okumaktayım son dört dersim kaldı 1-türkiye ekonomisi, 2-maliye politikası , 3-avrp birl ve türk ilişkileri, 4-kamu yönetiminde çağdaş yaklaşımlar bu derslerin 2020-21 dönemi bahar kayıt yenilemesinde kullanıma açılacağını öğrendim o zamana kadar boş bekleyeceğime şimdiden güncel derslere ulaşma imkanı bulabileceğim bir link paylaşımında bulunabilirmisiniz.
teşekkürler