Android Date Time Picker Kullanımı
15 Mart 2017 Yorum 0 471 Görümtüleme 5

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

Previous Android SQLite Kullanımı
Next Aşk Nedir ? Nasıl Olmalıdır ?

About author

Sercan Çepni
Sercan Çepni 79 posts

<p>Ben Kimim ? Sercan ÇEPNİ 1989 Eskişehir doğumluyum. Kocaeli Üniversitesi Yerel Yönetimler ve Anadolu Üniversitesi Kamu Yönetimi Mezunuyum. Ayırca Kastamonu Üniversitesi Bilgisayar Programcılığı okuyorum. 2017 DGS hazırlanıp inşallah Bilgisayar Mühendisliğine geçeceğim.Tam olarak 10 yıl dır internet camiasının içerisinde bulunmaktayım. Bir çok çeşitli sektörlere yönelik web sitelerim var fakat uzun zamandır artık kendim içinde bir web sitesi açmak istiyordum ve sonunda açtım bu siteyi açmamın amacı bunca yıldır öğrendiğim bilgi birkimimi başkarınada aktarmak ve siyasetle ilgili yazılarımı paylaşmak arzumdan dolayı bu siteyi açtım.</p>

View all posts by this author →

Editor review

Konu Önemi
5/5
Hocanın Sorma Olasılığı
5/5

5

Excellent
5

0 Yorum

Henüz Yorum Yok

Bu gönderiye ilk yorumu sen yap comment this post!

Bir Cevap Bırakın