MOBILE PROGRAMMING Pertemuan 4
MOBILE PROGRAMMING Pertemuan 4
Langkah-langkahnya :
1. Jalankan Enclipse, buat project baru, isilah parameter seperti berikut
Penjelasan Program
Lihat dulu bagian Main.xml khususnya baris 9-10, merupakan bagian yang
menciptakan widget autocomplete. Widget ini memiliki beberapa atribut salah satu
contohnya adalah baris 12. Atribut pada baris 12 bernilai 3, berfungsi untuk
membatasi jumlah minimal huruf yang nanti dimasukkan. Dengan demikian, seorang
user minimal harus memasukkan 3 huruf dulu baru kemudian muncul kata-kata
rekomendasi.
Coba perhatikan baris 14, object edit adalah turunan dari class
AutoCompleteTextView. Object ini merupakan textview yang bisa diedit kemudian
muncul daftar rekomendasi kata secara otomatis saat proses mengetik berlangsung.
Daftar rekomendasi kata ditampilkan dalam sebuah drop down menu yang bisa diklik
oleh pengguna. Baris 26, mengaktifkan object edit supaya bisa menangkap sinyal
ketika user memasukkan sebuah huruf. Sinyal ini kemudian direspon oleh method-
method pada baris 31-43 yaitu :
- afterTextChanged()
method ini dipanggil setelah edittext selesai diubah
- beforeTextChanged()
method ini dipanggil sebelum edittext diubah
- onTextChanged()
method ini dipanggil saat text pada edittext sedang diubah.
Pada bagian Baris 28 , berfungsi untuk menempelkan data array bernama item
ke object edit. Bagian ini mengakibatkan kata-kata yang disimpan dalam variable
item muncul otomatis saat user memasukkan huruf. Baris 33 berperan menduplikasi
data, yaitu huruf apa saja yang dimasukkan ke dalam object edit maka tampil juga di
object hasil.
1: package com.dialog;
2:
3: import android.app.Activity;
4: import android.app.AlertDialog;
5: import android.content.DialogInterface;
6: import android.os.Bundle;
7: import android.widget.Button;
8: import android.widget.Toast;
9: import android.view.View;
10:
11: public class KotakDialog extends Activity implements
12: OnClickListener {
13: Button pesanToast;
14: Button keluar;
15: Button tampilList;
16: /** Called when the activity is first created. */
17: @Override
18: public void onCreate(Bundle savedInstanceState) {
19: super.onCreate(savedInstanceState);
20: setContentView(R.layout.main);
21:
22: pesanToast = (Button) findViewById(R.id.toastBtn);
23: pesanToast.setOnClickListener(this);
24:
25: keluar = (Button) findViewById(R.id.exitBtn);
26: keluar.setOnClickListener(this);
27:
28: tampilList = (Button)
29: findViewById(R.id.listDialogBtn);
30: tampilList.setOnClickListener(this);
31: }
32:
33: public void onClick(View clicked) {
34: switch (clicked.getId()) {
35: case R.id.listDialogBtn:
36: munculListDialog();
37: break;
38: case R.id.toastBtn:
39: Toast.makeText(this, "Kamu memilih Toast",
40: Toast.LENGTH_SHORT).show();
41: break;
42: case R.id.exitBtn:
43: exit();
44: break;
45: }
46: }
47:
48: private void munculListDialog() {
49: // TODO Auto-generated method stub
50: final CharSequence[] items = { "Es Teh", "Es Jeruk",
51: "Lemon Squash","Soft Drink" };
52:
53: AlertDialog.Builder kk = new AlertDialog.Builder(this);
54: kk.setTitle("Pilih Minuman");
55: kk.setItems(items, new DialogInterface.OnClickListener() {
56: public void onClick(DialogInterface dialog, int item) {
57: Toast.makeText(getApplicationContext(), items[item],
58: Toast.LENGTH_SHORT).show();
59: }
60: }).show();
61: }
62:
63: private void exit() {
64: AlertDialog.Builder builder = new AlertDialog.Builder(this);
65: builder.setMessage("Apakah Kamu Benar-Benar ingin keluar?")
66: .setCancelable(false)
67: .setPositiveButton("Ya", new
68: DialogInterface.OnClickListener() {
69: public void onClick(DialogInterface dialog,
70: int id) {
71: KotakDialog.this.finish();
72: }
73: })
74: .setNegativeButton("Tidak",new
75: DialogInterface.OnClickListener() {
76: @Override
77: public void onClick(DialogInterface dialog,
78: int arg1) {
79: // TODO Auto-generated method stub
80: dialog.cancel();
81: }
Pada program aplikasi yang dibuat, coba lakukan penekanan tombol: Panggil
Toast, Panggil List Dialog dan keluar aplikasi. Apa yang terjadi pada saat
penekanan tombol dilakukan.
Pembahasan program
Dalam android, picker sering dimanfaatkan untuk melakukan setting tanggal atau
jam.
1: package com.picker;
2:
3: import java.text.DateFormat;
4: import java.util.Calendar;
5:
6: import android.app.Activity;
7: import android.app.DatePickerDialog;
8: import android.app.TimePickerDialog;
9: import android.os.Bundle;
10: import android.view.View;
11: import android.view.View.OnClickListener;
12: import android.widget.Button;
13: import android.widget.DatePicker;
14: import android.widget.TextView;
15: import android.widget.TimePicker;
16:
17: public class picker extends Activity
18: implements OnClickListener {
19:
20: DateFormat fmtDateAndTime =
21: DateFormat.getDateTimeInstance();
22: TextView dateAndTimeLabel;
23: Calendar dateAndTime = Calendar.getInstance();
24: DatePickerDialog.OnDateSetListener d =
25: new DatePickerDialog.OnDateSetListener() {
26: @Override
27: public void onDateSet(DatePicker view, int year, int month,
28: int day) {
29: // TODO Auto-generated method stub
30: dateAndTime.set(Calendar.YEAR, year);
31: dateAndTime.set(Calendar.MONTH, month);
32: dateAndTime.set(Calendar.DAY_OF_MONTH, day);
33: updateLabel();
34: }
35: };
36: TimePickerDialog.OnTimeSetListener t =
37: new TimePickerDialog.OnTimeSetListener() {
38: @Override
39: public void onTimeSet(TimePicker view, int jam, int menit) {
40: // TODO Auto-generated method stub
41: dateAndTime.set(Calendar.HOUR_OF_DAY, jam);
42: dateAndTime.set(Calendar.MINUTE, menit);
43: updateLabel();
44: }
45: };
46:
47: /** Called when the activity is first created. */
48: @Override
49: public void onCreate(Bundle savedInstanceState) {
50: super.onCreate(savedInstanceState);
51: setContentView(R.layout.main);
52:
53: Button dayBtn = (Button) findViewById(R.id.dayBtn);
54: dayBtn.setOnClickListener(this);
55: Button timeBtn = (Button) findViewById(R.id.timeBtn);
56: timeBtn.setOnClickListener(this);
57: dateAndTimeLabel = (TextView)
58: findViewById(R.id.dateAndTime);
59: updateLabel();
60: }
61:
62: @Override
63: public void onClick(View v) {
64: // TODO Auto-generated method stub
65: switch (v.getId()) {
66: case R.id.dayBtn:
67: settingTanggal();
68: break;
69: case R.id.timeBtn:
70: setJam();
71: break;
72: }
73: }
74:
75: private void updateLabel() {
76: dateAndTimeLabel.setText(
77: fmtDateAndTime.format(dateAndTime.getTime()));
78: }
79:
80: private void settingTanggal() {
81: new DatePickerDialog(picker.this, d,
82: dateAndTime.get(Calendar.YEAR),
83: dateAndTime.get(Calendar.MONTH),
84: dateAndTime.get(Calendar.DAY_OF_MONTH)).show();
85: }
86:
87: private void setJam() {
88: new TimePickerDialog(picker.this, t,
89: dateAndTime.get(Calendar.HOUR_OF_DAY),
90: dateAndTime.get(Calendar.MINUTE), true).show();
91: }
92: }
4. Jalankan program dan lihat hasilnya. Tampilan pada saat program dijalankan :
Pada program aplikasi, lakukan penekanan pada tombol Set the Date dan tombol
Set the Time, kemudian amati apa yang terjadi.
Keterangan Program
Kita mulai dari layout main.xml, di bagian ini terdapat 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.
Sekarang lanjut ke activity picker.java. 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().