Tuesday 28 July 2015

Tarikh Pemetik Android (Android Date Picker)

fanxtea.blogspot.com

Tarikh Pemetik Android (Android Date Picker)

By Fanxtea | 1 Januari 2015



Di dalam Android, kita boleh menggunakan kelas "android.widget.DatePicker" untuk menggunakan komponen tarikh pemetik untuk memilih hari, bulan dan tahun didalam antara muka user yang telah ditetapkan.

Di dalam tutorial ini, saya akan menunjukkan bagaimana untuk membuat komponen tarikh pemetik di dalam page semasa via "android.widget.DatePicker" dan juga di dalam kotak dialog via "android.app.DatePickerDialog" . Tambahan, saya juga akan menunjukkan bagaimana untuk menetapkan tarikh dalam komponen tarikh pemetik.

  1. DatePicker
  2. Buka fail "res/layout/activity_main.xml", tambah tarikh pemetik, label dan butang untuk demo.

    Fail : res/layout/activity_main.xml

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/btnChangeDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Change Date" /> <TextView android:id="@+id/lblDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Current Date (M-D-YYYY): " android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/tvDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textAppearance="?android:attr/textAppearanceLarge" /> <DatePicker android:id="@+id/dpResult" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>


  3. Kod

  4. Fail : MainActivity.java

    package com.fanxtea.helloworld; import java.util.Calendar; import android.app.Activity; import android.app.DatePickerDialog; import android.app.Dialog; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; public class MainActivity extends Activity { private TextView tvDisplayDate; private DatePicker dpResult; private Button btnChangeDate; private int year; private int month; private int day; static final int DATE_DIALOG_ID = 999; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setCurrentDateOnView(); addListenerOnButton(); } // display current date public void setCurrentDateOnView() { tvDisplayDate = (TextView) findViewById(R.id.tvDate); dpResult = (DatePicker) findViewById(R.id.dpResult); final Calendar c = Calendar.getInstance(); year = c.get(Calendar.YEAR); month = c.get(Calendar.MONTH); day = c.get(Calendar.DAY_OF_MONTH); // set current date into textview tvDisplayDate.setText(new StringBuilder() // Month is 0 based, just add 1 .append(month + 1).append("-").append(day).append("-") .append(year).append(" ")); // set current date into datepicker dpResult.init(year, month, day, null); } public void addListenerOnButton() { btnChangeDate = (Button) findViewById(R.id.btnChangeDate); btnChangeDate.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { showDialog(DATE_DIALOG_ID); } }); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case DATE_DIALOG_ID: // set date picker as current date return new DatePickerDialog(this, datePickerListener, year, month,day); } return null; } private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { // when dialog box is closed, below method will be called. public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { year = selectedYear; month = selectedMonth; day = selectedDay; // set selected date into textview tvDisplayDate.setText(new StringBuilder().append(month + 1) .append("-").append(day).append("-").append(year) .append(" ")); // set selected date into datepicker also dpResult.init(year, month, day, null); } }; }


  5. Demo
  6. Run aplikasi.

    Default skrin akan memaparkan kalendar dan tarikh semasa mengikut peranti anda.

    Tekan pada butang "Change Date dan akan muncul popup dan klik "Set".

    TextBox dan DatePicker akan berubah mengikut tarikh yang di set.