Android time picker dialog kullanımı

Bu yazımda android de Time Picker Dialog kullanımını paylaşacağım. Uygulamalarımızda kullanıcıdan veri girişi yapmasını isteriz. Bu verilerden biri de saatlerdir. Biz bunu kullanıcıdan bir EditText ile alabiliriz fakat doğru formatta girmesi için birçok kontrol eklemek durumunda kalırız. Android de Time Picker dediğimiz nesneler sayesinde kullanıcıdan saati seçtirerek istediğimiz formatta elde edebiliriz. Konunun daha iyi anlaşılabilmesi için bir uygulama yapalım. Bu uygulamada bir butona tıklanınca dialog penceremiz açılacak ve kullanıcının seçtiği saati bir EditText nesnesinde göstereceğiz.

1) res/layout/ dizininde activity_main.xml dosyasını oluşturuyoruz.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    tools:context="com.sdahmet.timepicker.MainActivity">

    <EditText
        android:id="@+id/edittext_saat"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="10dp" />

    <Button
        android:id="@+id/button_saat_sec"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/edittext_saat"
        android:layout_toEndOf="@+id/edittext_saat"
        android:layout_toRightOf="@+id/edittext_saat"
        android:text="Saat Seç" />

</RelativeLayout>

2) MainActivity.java dosyasını oluşturuyoruz.

package com.sdahmet.timepicker;

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TimePicker;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {

    Button btnSaatSec;
    EditText etSaat;
    Context context = this;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnSaatSec = (Button) findViewById(R.id.button_saat_sec);
        etSaat = (EditText) findViewById(R.id.edittext_saat);

        btnSaatSec.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Şimdiki zaman bilgilerini alıyoruz. güncel saat, güncel dakika.
                final Calendar takvim = Calendar.getInstance();
                int saat = takvim.get(Calendar.HOUR_OF_DAY);
                int dakika = takvim.get(Calendar.MINUTE);
                
                TimePickerDialog tpd = new TimePickerDialog(context, 
                        new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                        // hourOfDay ve minute değerleri seçilen saat değerleridir.
                        // Edittextte bu değerleri gösteriyoruz.
                        etSaat.setText(hourOfDay + ":" + minute);
                    }
                }, saat, dakika, true);
                // timepicker açıldığında set edilecek değerleri buraya yazıyoruz.
                // şimdiki zamanı göstermesi için yukarda tanımladğımız değişkenleri kullanıyoruz.
                // true değeri 24 saatlik format için.

                // dialog penceresinin button bilgilerini ayarlıyoruz ve ekranda gösteriyoruz.
                tpd.setButton(TimePickerDialog.BUTTON_POSITIVE, "Seç", tpd);
                tpd.setButton(TimePickerDialog.BUTTON_NEGATIVE, "İptal", tpd);
                tpd.show();
            }
        });
    }
}
  1. btnSaatSec butonunun tıklanma olayı içerisinde
    final Calendar takvim = Calendar.getInstance(); ile bir takvim nesnesi oluşturuyoruz.
  2. int saat = takvim.get(Calendar.HOUR_OF_DAY); ile güncel saat değerini alıyoruz.
  3. int dakika = takvim.get(Calendar.MINUTE); ile güncel tarihin dakika değerini alıyoruz.
  4. TimePickerDialog tpd = new TimePickerDialog(...) ile bir dialog nesnesi oluşturuyoruz. 
  5. onTimeSet(TimePicker view, int hourOfDay, int minute) fonksiyonu ile kullanıcınnın seçtiği saat değerlerini alıyoruz.
  6. tpd.setButton(TimePickerDialog,BUTTON_POSITIVE, "Seç", tpd); ile dialog penceresi açıldığı zaman seçim yapmamıza yarayan butonun yazı değerine "Seç" yazıyoruz.
  7. tpd.setButton(TimePickerDialog,BUTTON_NEGATIVE, "İptal", tpd); ile dialog penceresi açıldığı zaman seçim yapmamıza yarayan butonun yazı değerine "İptal" yazıyoruz.
  8. tpd.show(); ile dialog penceresini gösteriyoruz.
// Şimdiki zaman bilgilerini alıyoruz. güncel saat, güncel dakika.
final Calendar takvim = Calendar.getInstance();
int saat = takvim.get(Calendar.HOUR_OF_DAY);
int dakika = takvim.get(Calendar.MINUTE);

TimePickerDialog tpd = new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() {

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // hourOfDay ve minute değerleri seçilen saat değerleridir.
        // Edittextte bu değerleri gösteriyoruz.
        etSaat.setText(hourOfDay + ":" + minute);
    }
}, saat, dakika, true);
// timepicker açıldığında set edilecek değerleri buraya yazıyoruz.
// şimdiki zamanı göstermesi için yukarıda tanımladığımız değişkenleri kullanıyoruz.
// true değeri 24 saatlik format için.

// dialog penceresinin button bilgilerini ayarlıyoruz ve ekranda gösteriyoruz.
tpd.setButton(TimePickerDialog.BUTTON_POSITIVE, "Seç", tpd);
tpd.setButton(TimePickerDialog.BUTTON_NEGATIVE, "İptal", tpd);
tpd.show();

Uygulama görüntüleri

      

ETİKETLER
android time picker dialog kullanımıandroid time picker dialog örneğiandroid saat seçmetime picker dialog
Öncekİ Yazı

Android date picker dialog kullanımı

Sonrakİ Yazı

Android de notification (bildirim) oluşturma

İlgili Yazılar