Dalam android, picker sering dimanfaatkan untuk melakukan setting tanggal atau jam. Lihat gambar 5.3.

Gambar 5.3. Picker untuk setting tanggal
1. Bikin project baru lagi, dengan parameter seperti berikut
| Project name | Picker |
|------------------|----------------|
| Build Target | Android 2.2 |
| Application name | Membuat Picker |
| Package name | com.picker |
| Create Activity | picker |
| Min SDK version | 8 |
2. Kita buat dulu bagian layout Main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/dateAndTime"/>
<Button android:text="Set the Date"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/dayBtn"></Button>
<Button android:text="Set the Time"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/timeBtn"></Button>
</LinearLayout>
3. Berikutnya kita sedikt banyak koding di activity picker.java
package com.picker;
import java.text.DateFormat;
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
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;
import android.widget.TimePicker;
public class picker extends Activity
implements OnClickListener {
DateFormat fmtDateAndTime =
DateFormat.getDateTimeInstance();
TextView dateAndTimeLabel;
Calendar dateAndTime = Calendar.getInstance();
DatePickerDialog.OnDateSetListener d =
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month,
int day) {
// TODO Auto-generated method stub
dateAndTime.set(Calendar.YEAR, year);
dateAndTime.set(Calendar.MONTH, month);
dateAndTime.set(Calendar.DAY_OF_MONTH, day);
updateLabel();
}
};
TimePickerDialog.OnTimeSetListener t =
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int jam, int menit) {
// TODO Auto-generated method stub
dateAndTime.set(Calendar.HOUR_OF_DAY, jam);
dateAndTime.set(Calendar.MINUTE, menit);
updateLabel();
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button dayBtn = (Button) findViewById(R.id.dayBtn);
dayBtn.setOnClickListener(this);
Button timeBtn = (Button) findViewById(R.id.timeBtn);
timeBtn.setOnClickListener(this);
dateAndTimeLabel = (TextView)
findViewById(R.id.dateAndTime);
updateLabel();
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.dayBtn:
settingTanggal();
break;
case R.id.timeBtn:
setJam();
break;
}
}
private void updateLabel() {
dateAndTimeLabel.setText(
fmtDateAndTime.format(dateAndTime.getTime()));
}
private void settingTanggal() {
new DatePickerDialog(picker.this, d,
dateAndTime.get(Calendar.YEAR),
dateAndTime.get(Calendar.MONTH),
dateAndTime.get(Calendar.DAY_OF_MONTH)).show();
}
private void setJam() {
new TimePickerDialog(picker.this, t,
dateAndTime.get(Calendar.HOUR_OF_DAY),
dateAndTime.get(Calendar.MINUTE), true).show();
}
}
Penjelasan Program
Kita mulai dari layout main.xml, di bagian ini Kamu menyiapkan 2 buah button dan sebuah textview. Button pertama diberi id „dayBtn‟ (baris 13) nanti difungsikan untuk memanggil picker tanggal, sedangkan button kedua diberi id „timeBtn‟ (baris 17) nanti dipakai untuk memanggil picker jam. Ok, sangat simple!
Sekarang lanjut ke activity picker.java, Kamu harus mulai berkonsentrasi. Hehehe.. Ok,
DatePickerDialog.onDateSetListener (baris 24) berperan menangkap informasi setelah user selesai melakukan setting waktu. Pada saat yang bersamaan, method onDataSet() dipanggil untuk mengupdate Tahun, bulan, hari, tanggal maupun jam, keudian ditampilkan ke textview melalui method updateLabel().
Sumber
omayib.com