Pazartesi, Kasım 25, 2024
Ana SayfaAndroidAndroid Date Time Picker Kullanımı

Android Date Time Picker Kullanımı

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ı

Android Date Picker
Android Date Picker

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ü ;

Date Picker Kullanımı Tasarım
Date Picker Kullanımı Tasarım

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 ;

Date Picker Kullanımı Tasarım Son
Date Picker Kullanımı Tasarım Son

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.

Android Time Picker Kullanımı
Android Time Picker Kullanımı

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ü ;

Android Time Picker Örnek Tasarım
Android Time Picker Örnek Tasarım

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 ;

Örnek Projeyi İndirmek İçin Tıklayın

Önceki İçerik
Sonraki İçerik
RELATED ARTICLES

1 Yorum

  1. 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

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

Most Popular

Recent Comments