AndroidProgramlama

Android – Date Picker & Time Picker Kullanımı

Android Uygulamalarda Takvim ve Saat Kullanımı

Merhaba arkadaşlar, bu yazıda Android uygulamalarda kullanılan Date Picker ve Time Picker nedir, nasıl kullanılır bunları öğreneceğiz ve bununla ilgili Button ve TextView’lerden oluşan bir uygulama yapacağız. Gerek web uygulamalarda, gerekse mobil uygulamalarda kullanılan zaman kavramı çok önemlidir. Şimdir ise Date Picker ve Time Picker’ın ne olduğunu anlamaya çalışalım. Ve daha sonrasında da basit bir uygulama ile olayı kavramaya çalışalım. Başlıyoruz.. ????

Date Picker : Anlamı “tarih seçici“dir. Tarih belirlemede kullanılır.
Time Picker : Anlamı “saat seçici“dir. Saat belirlemede kullanılır.
Bu iki yapı kullanıcıların manuel olarak saat ve tarih belirlemesine gerek kalmadan basit bir diyalog penceresi kullanmasını sağlar.

Örnek Uygulama :

Bu uygulamada giriş ekranında “Saat” ve “Tarih” adında iki buton olacak ve kullanıcılar açılan diyalog penceresinden saat ve tarihi seçebilecekler ve biz de bu iki yapının kullanımını anlamış olacağız. Hadi başlayalım !

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
android:background="#e0e0e0"
tools:context=".MainActivity"
tools:layout_editor_absoluteY="25dp">

<Button
android:id="@+id/button"
android:layout_width="115dp"
android:layout_height="60dp"
android:layout_marginEnd="20dp"
android:layout_marginLeft="68dp"
android:layout_marginRight="20dp"
android:layout_marginStart="68dp"
android:background="#463c48"
android:text="SAAT"
app:layout_constraintBaseline_toBaselineOf="@+id/button2"
app:layout_constraintEnd_toStartOf="@+id/button2"
app:layout_constraintStart_toStartOf="parent" />

<Button
android:id="@+id/button2"
android:layout_width="115dp"
android:layout_height="60dp"
android:layout_marginBottom="71dp"
android:layout_marginEnd="68dp"
android:layout_marginRight="68dp"
android:background="#463c48"
android:text="TARİH"
app:layout_constraintBottom_toTopOf="@+id/textView2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/button"
app:layout_constraintTop_toBottomOf="@+id/textView" />

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginBottom="75dp"
android:layout_marginLeft="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="128dp"
android:text=" Tarih ve saati seçmek için butonlara tıklayınız."
android:textColor="#000000"
android:textSize="18dp"
app:layout_constraintBottom_toTopOf="@+id/button2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginBottom="23dp"
android:paddingLeft="10dp"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/textView3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button2" />

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginBottom="92dp"
android:paddingRight="10dp"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
</android.support.constraint.ConstraintLayout>

Uygulamanın tasarımını istediğiniz gibi düzenleyebilirsiniz. Önemli olan seçilen değerlerin gösterilebileceği bir TextView olmasıdır. Tabi farklı fikirler de olabilir.

MainActivity.java

public class MainActivity extends AppCompatActivity {

Button button, button2;
TextView textView2,textView3;
Calendar calendar;
DatePickerDialog datePickerDialog;
int hour,minute;

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

button = (Button) findViewById(R.id.button);
button2 = (Button) findViewById(R.id.button2);
textView2 = (TextView) findViewById(R.id.textView2);
textView3 = (TextView) findViewById(R.id.textView3);

calendar = Calendar.getInstance();
hour = calendar.get(Calendar.HOUR_OF_DAY);
minute = calendar.get(Calendar.MINUTE);

//textView2.setText(hour + " : " + minute);

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
textView2.setText(hourOfDay + " : "+ minute );

}
}, hour,minute,true);
timePickerDialog.show();
}
});


button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_MONTH);
int month = calendar.get(Calendar.MONTH);
int year = calendar.get(Calendar.YEAR);

datePickerDialog = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
textView3.setText(dayOfMonth + "/" + (month+1) + "/" + year);
}
}, day,month,year);
datePickerDialog.show();
}
});

}

}

Kodları kısaca açıklayayım. Ana sınıfta önemli olan yapılar TimePickerDialog, DatePickerDialog ve Calendar. Bu sınıflardan nesne üretmekle başlıyoruz. Butonlara tıklandığında tarih ve saat diyalog pencerelerinin çıkmasını sağlayan kodları, butonların onClick() metodu içerisine yazıyoruz. Integer cinsinden tanımladığımız hour, minute, day, month ve year‘a ise seçilen zamanlar atanır. Örnek ➡

hour = calendar.get(Calendar.HOUR_OF_DAY);
minute = calendar.get(Calendar.MINUTE);

Calendar ise takvim sınıfıdır. Bu sınıftan türettiğimiz nesne ile yukarıdaki gibi saati ve dakikayı alabildik. Ve integer cinsindeki hour ve minute değişkenlerine atadık.

Değişkenlere atadığımız değerleri butonların altındaki TextView’lerde gösterebilmek için setText kullanıyoruz.

 textView3.setText(dayOfMonth + "/" + (month+1) + "/" + year); 

Butonların onClick() metodlarının içinde kullandığımız onTimeSet() ve onDateSet() override metodları sayesinde tarih ve saat kullanımını daha kolay bir şekilde sağlıyoruz.

onTimeSet() ve onDateSet() metodlarının parametrelerinin anlamlarına da bakalım.

 public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) 
 public void onTimeSet(TimePicker view, int hourOfDay, int minute) 

hourOfDay : Gün içerisindeki geçerli saat.
minuteOfHour : Saat içerisindeki geçerli dakika.
dayOfMonth : Ay içerisindeki geçerli gün.
hour : saat
minute : dakika
day : gün
month : ay
year : yıl

Son olarak datePickerDialog.show(); ve timePickerDialog(); ile seçilen tarih ve saati ekranda gösteriyoruz.

Uygulamanın Son Hali :

Android - Date Picker & Time Picker Kullanımı
Android – Date Picker & Time Picker Kullanımı

Bu uygulama sayesinde Android’de Time Picker ve Date Picker kullanımının anlaşıldığını umuyorum. Siz de uygulamanıza tarih ve saat eklerken bu şekildeki kullanımı veya daha farklı kullanımları deneyebilirsiniz. Okuduğunuz için teşekkür ederim. Bir sonraki yazıda görüşmek üzere..????

Daha Fazla Göster

İlgili Makaleler

Bir cevap yazın

Başa dön tuşu

Reklam Engelleyici Algılandı

Lütfen reklam engelleyiciyi devre dışı bırakarak bizi desteklemeyi düşünün