Tutorial Membuat Aplikasi Android Date Time Picker

Diposting oleh Chandra pada Tutorial

Android menyediakan kontrol bagi pengguna untuk memilih waktu atau memilih tanggal sebagai dialog siap pakai. Setiap picker menyediakan kontrol untuk memilih setiap bagian dari waktu (jam, menit, AM / PM) atau tanggal (bulan, hari, tahun). Menggunakan picker ini membantu memastikan bahwa pengguna Anda dapat memilih waktu atau tanggal yang valid, diformat dengan benar, dan disesuaikan dengan lokasi pengguna.

Sebaiknya Anda menggunakan DialogFragment untuk meng-host setiap waktu atau pemetik tanggal. DialogFragment mengelola siklus dialog untuk Anda dan memungkinkan Anda menampilkan picker dalam konfigurasi tata letak yang berbeda, seperti pada dialog dasar pada handset atau sebagai bagian tertanam dari tata letak pada layar besar.

Meskipun DialogFragment pertama kali ditambahkan ke platform di Android 3.0 (tingkat API 11), jika aplikasi Anda mendukung versi Android yang lebih tua dari 3,0-bahkan serendah Android 1.6-Anda dapat menggunakan kelas DialogFragment yang tersedia di library pendukung untuk kompatibilitas ke belakang.

Ayo, kita mulai saja. Buat project baru di Android Studio File ⇒ New Project. Kemudian pilih Empty Activity dan melanjutkannya hingga selesai.

Tampilan untuk menampilkan Date Time Picker.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">
 
    <EditText
        android:id="@+id/txt_tgl"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:editable="false"
        android:focusable="false"
        android:hint="Tanggal" />
 
    <EditText
        android:id="@+id/txt_jam"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:editable="false"
        android:focusable="false"
        android:hint="Jam" />
 
    <Button
        android:id="@+id/btn_get_datetime"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Get Date Time" />
 
</LinearLayout>

 

Buka MainActivity.java dan tambahkan coding seperti dibawah ini untuk menampilkan dialog date time picker.

MainActivity.java

package com.dedykuncoro.datetimepicker;
 
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
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.EditText;
import android.widget.TimePicker;
import android.widget.Toast;
 
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
 
public class MainActivity extends AppCompatActivity {
 
    Calendar myCalendar;
    DatePickerDialog.OnDateSetListener date;
    EditText txt_tgl, txt_jam;
    Button btn_get_datetime;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        txt_tgl = (EditText) findViewById(R.id.txt_tgl);
        txt_jam = (EditText) findViewById(R.id.txt_jam);
        btn_get_datetime = (Button) findViewById(R.id.btn_get_datetime);
 
        myCalendar = Calendar.getInstance();
        date = new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear,
                                  int dayOfMonth) {
                // TODO Auto-generated method stub
                myCalendar.set(Calendar.YEAR, year);
                myCalendar.set(Calendar.MONTH, monthOfYear);
                myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                updateLabel();
            }
        };
 
        txt_tgl.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                new DatePickerDialog(MainActivity.this, date, myCalendar
                        .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                        myCalendar.get(Calendar.DAY_OF_MONTH)).show();
            }
        });
 
        txt_jam.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);
                int minute = mcurrentTime.get(Calendar.MINUTE);
                TimePickerDialog mTimePicker;
                mTimePicker = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
 
                    @Override
                    public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                        txt_jam.setText(selectedHour + ":" + selectedMinute);
                    }
                }, hour, minute, true);//Yes 24 hour time
                mTimePicker.setTitle("Select Time");
                mTimePicker.show();
 
            }
        });
 
        btn_get_datetime.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this,
                        "Tanggal : " + txt_tgl.getText().toString() + "\n" +
                                "Jam : " + txt_jam.getText().toString()
                        , Toast.LENGTH_SHORT
                ).show();
            }
        });
    }
 
    private void updateLabel() {
        String myFormat = "yyyy-MM-dd";
        SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
        txt_tgl.setText(sdf.format(myCalendar.getTime()));
    }
}

Silahkan jalankan aplikasi yang dibuat dengan klik pada tombol Run, bisa ke emulator yang sudah diinstal sebelumnya atau ke hp android yang sudah terkoneksi.