Contoh Android DatePicker

Android DatePicker memungkinkan pengguna untuk memilih tanggal membuat tanggal yang dipilih valid dan diformat dengan benar. DatePicker dapat digunakan dalam dua mode: mode kalender dan mode pemintal. Jika Anda menggunakan tema material, secara default DatePicker ditampilkan sebagai tampilan kalender.
Dalam posting ini, Anda dapat menemukan rincian tentang DatePickerDialog, widget DatePicker, gaya desain DatePicker, gaya materi kustom DatePicker, penanganan event DatePicker, kalender DatePicker, spinner DatePicker, dan Spinner DatePicker.
Contoh Android DatePicker
Alat pilih tanggal dapat ditampilkan sebagai dialog menggunakan DatePickerDialog. Untuk menggunakan DatePickerDialog, pertama Anda perlu membuat fragmen dialog dengan memperluas DialogFragment dan menerapkan metode onCreateDialog yang mengembalikan instance DatePickerDialog. Dalam penerapan metode onCreateDialog pada fragmen pengambil tanggal, instantiate DatePickerDialog dengan menetapkan tanggal saat ini dan mengembalikannya.
Contoh DatePickerDialog di bawah ini menampilkan layar dengan tombol, saat mengkliknya, dialog pemilih tanggal akan ditampilkan dan tanggal yang dipilih akan ditampilkan sebagai pesan bersulang.

Fragmen DatePicker

package dialog.zoftino.com.dialog;

import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.widget.DatePicker;
import android.widget.Toast;

import java.util.Calendar;

public class MyDatePickerFragment extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);

        return new DatePickerDialog(getActivity(), dateSetListener, year, month, day);
    }

    private DatePickerDialog.OnDateSetListener dateSetListener =
            new DatePickerDialog.OnDateSetListener() {
                public void onDateSet(DatePicker view, int year, int month, int day) {
                    Toast.makeText(getActivity(), "selected date is " + view.getYear() +
                            " / " + (view.getMonth()+1) +
                            " / " + view.getDayOfMonth(), Toast.LENGTH_SHORT).show();
                }
            };
}

Aktivitas
package dialog.zoftino.com.dialog;

import android.support.v4.app.DialogFragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void showDatePicker(View v) {
        DialogFragment newFragment = new MyDatePickerFragment();
        newFragment.show(getSupportFragmentManager(), "date picker");
    }
}

Tata letak aktivitas

<?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"
    tools:context="dialog.zoftino.com.dialog.MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Date Picker Example"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="24dp"
        android:text="Pick Date"
        android:onClick="showDatePicker"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

</android.support.constraint.ConstraintLayout>

Contoh keluaran Android DatePickerDialog

contoh datepickerdialog android

Penanganan event Android DatePickerDialog

Seperti yang ditunjukkan pada contoh pemilih tanggal di atas, acara pemilih tanggal dapat ditangani dengan menerapkan DatePickerDialog.OnDateSetListener. DatePickerDialog.OnDateSetListener memiliki metode callback onDateSet yang dipanggil saat tanggal diambil dari dialog pemilih tanggal. Dalam metode onDateSet, Anda bisa mendapatkan tanggal yang dipilih pengguna seperti yang ditunjukkan pada kode di bawah ini.
 DatePickerDialog.OnDateSetListener dateSetListener =
            new DatePickerDialog.OnDateSetListener() {
                public void onDateSet(DatePicker view, int year, int month, int day) {
                    Toast.makeText(getActivity(), "selected date is " + view.getYear() +
                            " / " + (view.getMonth()+1) +
                            " / " + view.getDayOfMonth(), Toast.LENGTH_SHORT).show();
                }
            }; 
Tanggal di atas menetapkan metode panggilan balik dipanggil setiap kali tanggal diambil hanya setelah menambahkannya ke DatePickerDialog dengan meneruskannya ke konstruktor DatePickerDialog.

Contoh DatePicker Widget

DatePicker dapat ditampilkan menggunakan widget DatePicker. Untuk menggunakan widget DatePicker pertama-tama tentukan pemilih tanggal dalam tata letak xml seperti yang ditunjukkan di bawah ini.

Tata letak dengan widget DatePicker

<?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">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="Date Picker Widget"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <DatePicker
        android:id="@+id/datePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

</android.support.constraint.ConstraintLayout>

Aktivitas

public class DatePickerWidgetActivity extends AppCompatActivity {

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

        DatePicker dp = findViewById(R.id.datePicker);
        dp.setOnDateChangedListener(dateChangedListener);
    }
    private DatePicker.OnDateChangedListener dateChangedListener =
            new DatePicker.OnDateChangedListener(){
        @Override
        public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
            Toast.makeText(DatePickerWidgetActivity.this, "picked date is " + datePicker.getDayOfMonth() +
                    " / " + (datePicker.getMonth()+1) +
                    " / " + datePicker.getYear(), Toast.LENGTH_SHORT).show();
        }
    };

}

DatePicker widget date change listener

Untuk menangani event widget DatePicker, Anda perlu mengimplementasikan DatePicker.OnDateChangedListener dan menambahkannya ke widget DatePicker dengan memanggil metode setOnDateChangedListener. DatePicker.OnDateChangedListener memiliki satu callback onDateChanged yang dipanggil ketika tanggal diubah dan ini di mana Anda bisa mendapatkan tanggal pengguna piket, lihat kode di atas untuk rincian.

Output widget DatePicker

contoh widget android datepicker

Android Style DatePicker Material

Tingkat aplikasi style bahan DatePicker

Platform Android menyediakan gaya material untuk DatePicker mengikuti pedoman desain material. Gambar di atas menunjukkan gaya materi default DatePicker dengan aplikasi yang disetel ke aplikasi gaya material kompak Theme.AppCompat.Light.DarkActionBar.
Gaya pemilih tanggal dapat disesuaikan pada tingkat aplikasi dengan memperluas tema kompak aplikasi dan pengaturan properti warna seperti yang ditunjukkan di bawah ini.
<style name="MyAppTheme" parent="Theme.AppCompat.Light">
    <item name="colorAccent">#ff6d00</item>
    <item name="colorControlActivated">#33691e</item>
    <item name="android:selectableItemBackgroundBorderless">@color/colorPrimaryDark</item>
    <item name="colorControlHighlight">#d50000</item>
</style>
Output DatePicker menggunakan tema khusus.
contoh gaya materi android datepicker

DatePicker style style individual

Dengan tema khusus di atas, semua kontrol UI di seluruh aplikasi menjadi terpengaruh. Untuk menyesuaikan hanya DatePicker dalam aplikasi Anda, Anda perlu untuk memperpanjang tema materi android untuk DatePicker widget (Widget.Material.DatePicker) atau dialog alert (ThemeOverlay.AppCompat.Dialog.Alert) dan mengatur datePickerStyle atau datePickerDialogTheme sifat aplikasi kompak aplikasi tema.
Gaya di bawah ini adalah tema DatePickerDialog khusus.
<style name="MyDatePickerDialogStyle" parent="@style/ThemeOverlay.AppCompat.Dialog.Alert">
    <item name="showTitle">false</item>
    <item name="colorControlActivated">#ffea00</item>
    <item name="android:selectableItemBackgroundBorderless">@color/colorItmBg</item>
    <item name="colorControlHighlight">#c51162</item>
    <item name="android:headerBackground">#00c853</item>
</style>
Gaya di bawah ini memperluas tema kompak aplikasi dengan datePickerDialogTheme yang diatur ke tema khusus di atas.
<style name="MyAppThemeTwo" parent="Theme.AppCompat.Light">
    <item name="android:datePickerDialogTheme">@style/MyDatePickerDialogStyle</item>
</style>
Gambar di bawah ini menunjukkan output pemilih tanggal setelah menerapkan tema khusus di atas ke aplikasi.
android datepicker custom material style example

Android DatePicker Spinner

Jika Anda menggunakan tema material, secara default pemilih data berada dalam mode kalender. Anda dapat mengubah tampilan DatePicker dengan mengatur atribut datePickerMode ke mode pemintal atau kalender.
Di bawah gaya set mode datepicker ke spinner.
<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.DatePicker">
    <item name="android:colorControlActivated">#ffea00</item>
     . . .
    <item name="android:datePickerMode">spinner</item>
    <item name="android:calendarViewShown">false</item>
</style>
Terapkan gaya di atas ke pemilih tanggal.
<DatePicker
    android:id="@+id/datePicker"
    style="@style/MyDatePickerStyle"
    android:theme="@style/MyDatePickerSpinnerStyle"
    . . ./>
Ouput pemilih tanggal dalam mode pemintal.
contoh android datepicker spinner
Jika datePickerMode disetel menjadi spinner dan calendarViewShown tidak disetel ke false, tampilan spinner dan calendar akan ditampilkan seperti ditunjukkan di bawah ini.
android pemintal datepicker dan tampilan kalender

Android DatePicker Spinner Style

Di bawah gaya materi kustom untuk pemintal DatePicker menetapkan warna pembagi pilihan.
<style name="MyDatePickerSpinnerStyle" parent="@android:style/Widget.Material.DatePicker">
    <item name="android:datePickerMode">spinner</item>
    <item name="android:calendarViewShown">false</item>
    <item name="colorControlNormal">#d50000</item>
</style>
android gaya pemintal datepicker

KEEP CODING ~

0 Response to "Contoh Android DatePicker"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel