Agus Haryanto, MKOM http://agusharyanto.net
@agus_inovator
[email protected] 08551000444 / 089673371119
Juara 2 Indosat M2 Android Application Contest Juara Harapan Kompetisi Android T-Market (Telesindo)
Juara 1 BBDEVID Challenge Blackberry Application (Webworks) Juara 1 AngelHack Blackberry Indonesia
ANDROID FAST ANDROID FAST TRACK
TRACK
A G U S H A R Y A N T O A G U S H A R Y A N T O
Preface...vii
Pengenalan Android...9
Kenalan dengan Android...9
Instalasi Android...10
Project Android pertama...11
Pengenalan User Interface...19
Mengenal Layout...19
Mengenal View...36
Android Database SQLITE...49
SQLITE...49
Kamus Tiga Bahasa (CRUD)...50
Android Google Map...87
Menampilkan Data GPS...87
Menampilkan Map pada Android...95
Menampilkan Direction pada Map...111
Android PHP MySQL...125
CRUD Android PHP Mysql...125
Penutup...151
Semangat...151
Seminar Workshop Android...151
Referensi...152
Android begitu fenomenal diusianya masih muda sudah mampu mendominasi pasar smartphone dunia. Bagi pengem- bang aplikasi itu adalah pasar yang besar untuk aplikasinya.
Untuk membuat aplikasi android tidaklah sesulit yang dibay- angkan. Syarat utamanya kita harus menguasai dasar java dan konsep object orientedya (OOP). Pada buku Android Fast Track ini akan membahas bagian-bagian penting dalam pembuatan aplikasi Android meliputi Pengenalan dasar pembuatan aplikasi android, pengenalan cara menggunakan database sqlite an- droid, pengenalan cara menggunakan Map API 2 untuk mengembangkan aplikasi android yang menggunakan peta.
Pengenalan cara membuat aplikasi android yang datanya ter- simpan di server
Buku ini tentunya masih jauh dari sempurna. Untuk itu apabila ada masukkan langsung saja email ke [email protected]. Untuk melihat tutorial android lainnya dapat berkunjung ke situs http://agusharyanto.net
Untuk kampus atau sekolah yang berminat mengadakan seminar atau workshop android atau lainnya bisa hubungi saya di email [email protected] ,twitter @agus_inovator atau di 0855-1000-444. Khusus untuk luar kota biaya trans- portasi dan akomodasi ditanggung penyelenggara acara.
P E N G E N A L A N
A N D R O I D
K
E N A L A N D E N G A NA
N D R O I DSebelum melangkah lebih jauh, alangkah baiknya jika kita men- genal apa itu android. Android adalah Sistem Operasi yang dikem- bangkan dan dipopulerkan oleh Google. Andy Rubin dapat kita sebut sebagai otak utama dibalik OS android ini. Pada awalnya perkemban- gan OS Android ini kurang begitu bagus, Hal ini membuat Google turun tangan dengan turut melahirkan ponsel Google Android per- tama yang legendaris yang dikenal dengan nama Nexus One. Di Nexus One ini Google menunjukkan kemampuan android yang sebenarnya dan hasilnya luar biasa, tanggapan pasar begitu bagus.
Hal inilah yang mendorong minat perusahaan-perusahaan Smarthone bersemangat untuk membuat Smartphone dengan OS Android. Dan hasilnya dapat dilihat saat ini android menguasai pasar Smartphone Dunia dengan dipimpin oleh Samsung dengan seri Galaxynya.
Berikut saya tampilkan data analisis dari Gartner.
1
Ada Sistem Operasi berarti ada aplikasi yang dapat kita buat di dalamnya. Pada Android Fast Track ini kami mencoba mengenalkan cara membuta aplikasi pada android, disini metode yang diterapkan akan lebih banyak praktek.
I
N S T A L A S IA
N D R O I DSebelum memulai membuat aplikasi android tentunya kita harus mempersiapkan softwarenya terlebih dahulu.
Step Instalaasi :
1. Download Java 1.7 dari oracle.com
http://www.oracle.com/technetwork/java/javase/downloads/j dk7-downloads-1880260.html lalu install.
2. Download Ecliplse Bundle (Eclipse + ADT + Android SDK Plat-
form) dari developer.andorid.com
http://developer.android.com/sdk/index.html#win-bundle 3. Unzip file yang didownload ke direktori yang kita inginkan mis-
alanya “c:\development”
4. Instalasi Selesai. Untuk menjalankannnya, masuk ke direktori eclipse dari file yang diunzip lalu jalankan eclipse
5. Untuk mendownload Platform android lainnya, jalankan SDK- Manager
Untuk Spesifikasi Hardwarenya agar terasa nyaman waktu develop aplikasi sebaikanya gunakan komputer dengan processor core i3 keatas dan memori 4GB
P
R O J E C TA
N D R O I D P E R TA M ADalam hidup selalu ada yang pertama, demikian juga dengan be- lajar. Kali ini kita akan membuat project Android Pertama kita.
1. Pada eclipse dibagian toolbar klik New
2. Pada jendela yang tanpil, klik folder Android, lalu pilih An- droid Application Project lalu klik Next
3. Isilah isian pada jendela New Android Application
Field Keterangan
Application Name Nama Aplikasi. Yang akan terlihat pada Icon Launcher Aplikasi.
Project Name Nama Project. Nama Project ini boleh beda dengan nama Aplikasi.
Package Name Nama package aplikasi kita, biasanya diawali dengan domain_organisasi lalu nama aplikasi.
Misalnya net.agusharyanto.myfirstapp Minimum Required SDK Minimum SDK yang diperbolehkan untuk
menjalankan aplikasi.
Target SDK Target SDK yang akan menjalakan Aplikasi.
Compile With Aplikasi akan di compile dengan SDK versi ini.
Theme Theme yang akan dipakai untuk develop aplikasi.
Klik Next
4. Mucul Jendela untuk mengkonfigurasi project, biarkan saja dengan nilai default. Klik Next
5. Muncul Jendela untuk mengatur Icon dari Aplikasi disini kita harus menyiapkan Icon dengan ukuran 32x32, 48x48, 72x72, 128x128. Jika belum siap klik Next saja.
6. Pada jendela Activity pilih Empty Activity lalu klik Next. Jika ingin pakai Fragment pilih Blank Activity. Karena baru belajar kita pilih yang tanpa Fragment yaitu Empty Activity
7. Pada jendela Empty Activity, kita bisa menentukan nama Activity dan layoutnya, untuk awal kita gunakan suja nilai yang sudah ada (default) lalu klik Finish
Setelah selesai, maka kita sudah berhasil membuat project android dan bisa langsung merun aplikasinya.
Tetapi sebelumnya kita harus memperhatikan beberapa file dan direktori yang ada pada project kita.
AndroidManifest.xml
Pada file ini konfigurasi projectkita ditentukan, meliputi
• Default Activity yang akan dijalankan pada saat aplikasi di- jalankan
• Daftar Activity dan Service yang akan digunakan dalam aplikasi.
• Datftar Permission
• Minimal SDK yang dapat menjalankan Aplikasi.
• Icon Aplikasi.
src/
Direktori src/ adalah direktori dimana file-file class java aplikasi kita disimpan
res/
Direktory res adalah direktori dimana file-file resource yang berkaitan dengan aplikasi disimpan ada beberapa direktori penting dibawah res/ ini
• layout/ direktori layout adalah tempat untuk menyimpan xml file layout user interface aplikasi.
• values/ direktori values adalah tempat untuk meyimpan file xml resource yang berkaitan dengan xml layout seperti String Defini- tion dan Color Definition
• drawable-***/ adalah direktori untuk menyimpna file-file gam- bar, suara dan lainnya yang digunakan dalam aplikasi.
Setelah kita mengerti, mari kita run projectnya, caranya adalah pada dari menu eclipse pilih Run ----> Run As ----> Android Application
Jika belum ada Emulator AVDnya kita bisa menambahkan melalui menu Window ---> AVD Manager
Terlihat kita sudah berhasil menjalankan project kita.
Dari mana tulisan “Hello world!”
Yang pertama kita lihat adalah file AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/andr oid"
package="net.agusharyanto.myfirstapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="net.agusharyanto.myfirstapp.MainActivity
"
android:label="@string/app_name" >
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Perhatikan disini activity yang dieksekusi pertama kali adalah Main- Activity
Mari kita buka file MainActivity.java package net.agusharyanto.myfirstapp;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} }
Perhatikan activity_main.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/andr oid"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin
"
android:paddingLeft="@dimen/activity_horizontal_margin
"
android:paddingRight="@dimen/activity_horizontal_margi n"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
Disini menggunakan relative layout yang didalamnya ada TextView dari sinilah android:text="@string/hello_world"
HelloWorld muncul, buka file string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MyFirstApp</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
</resources>
Tugas
Jawablah Pertanyaan-pertanyaan dibwah ini.
1. Apa itu Android ?
2. Apayang membuat anda tertarik belajar membuat aplikasi an- droid ?
3. Apa keuntungan yang didapat jika kita mempunyai kemam- puan untuk membuat aplikasi android ?
4. Anda lebih suka bahasa java atau HTML 5 ? 5. Anda suka dengan programming ?
P E N G E N A L A N U S E R I N T E R FA C E
Sebelumnya kita sudah belajar membuat aplikasi sederhana pada An- droid. Sekarang kita melangkah ke aplikasi yang lebih menarik, yaitu aplikasi yang sudah menggunakan beberapa object view groups dan view.
M
E N G E N A LL
AY O U TPada Android layout memegang peranan penting terutama pada user interface. Dalam layout biasany didalamnya terdiri dari satu atau le- bih objek view sehingga dapatlah disebut Layout adalah View Group.
Ada beberapa layout yang berlaku di android.
Linear Layout
Linear Layout sesuai dengan namanya digunakan untuk menyusun view sacara linear vertical atau horizontal.
Agar Lebih memahaminya mari kita buat satu project yang menggun- akan linear layout
2
1. Buat project baru, isi kan parameter-parameternya seperti dibawah ini
Field Isi
Application Name BelajarLinearLayout Project Name BelajarLinearLayout
Package Name net.agusharyanto.belajarlayout Minimum Required
SDK
Api 8: Android 2.2 (Froyo)
Target SDK Api 19: Android 4.4 (KitKat) Compile With Holo Light With Dark Action
Bar
Activity Name BelajarLinearLayoutActivity
Layout Name main
2. Buka File activity_main.xml kemudian ketikan kode berikut
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="${packageName}.${activityClass}">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:text = "Merah"
android:gravity="center_horizontal"
android:background="#aa0000"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight = "1"/>
<TextView
android:text = "Hijau"
android:gravity="center_horizontal"
android:background="#00aa00"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<TextView
android:text = "Biru"
android:gravity="center_horizontal"
android:background="#0000aa"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<TextView
android:text = "Kuning"
android:gravity="center_horizontal"
android:background="#aaaa00"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:text = "Baris Satu"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight = "1"/>
< EditText android:id = "@+id/EditText1"
android:text = "Baris Dua"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button android:id="@+id/Button1"
android:text = "Baris Tiga"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:text = "Baris Empat"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
Coba perhatikan kita ada tiga tag LinearLayout.
1. LinearLayout yang paling luar android:orientation diset vertical, yang berarti setiap view atau layout yang berada did- alamnya akan disusn secara vertical.
2. LinearLayout yang kedua berada didalam LinearLayout yang di- luar, android:orientation diset horizontal , yang berarti setiap view atau layout yang berada didalamnya akan disusun secara horizontal
3. Linear Layout yang ketiga juga berada didalam LinearLayout yang diluar, android:orientation diset vertical yang be- rarti setiap view atau layout yang berada didalamnya akan disusun secara vertical
LinearLayout yang paling luar bisa disebut parent dari LinearLayout yang kedua dan ketiga.
Disini kita juga mulai dikenalkan dengan beberapa tag baru yang masuk kedalam golongan view
Tag Fungsi
TextView Untuk menampilkan Text dalam bentuk label EditText Untuk Menampilkan Inputan Text
Button Digunakan untuk menampilkan button atau tombol.
Diatas juga terlihat properti-properti (Kalau kita biasa dengan HTML ini bisa disebut Atribut dan CSSnya) yang melekat pada masing-mas- ing view.
Property (Atribut) fungsi
android:id Menetapkan id dari suatu view
android:text Menetapkan isi text yang akan dit- ampilkan
Property (CSS) fungsi
android:textSize Menetapkan besar ukuran huruf android:layout_width Menetapkan lebar dari suatu view android:layout_height Menetapkan tinggi dari suatu view android:layout_weight Menunjukkan berapa banyak ru- ang ekstra dalam LinearLayout akan dialokasikan ke tampilan yang terkait dengan Layout- Params.
android:gravity Menentukan tempat object/view pada suatu layout
Agar lebih memahami fungsi dari property-property diatas cobalah baca javadoc android pada situs developer.andorid.com dan coba ru- bah nilainya.
3. Buka File MainActivity.java
package net.agusharyanto.belajarandroidlayout;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} }
4. Sekarang Mari kita jalankan projectnya
TableLayout
Yang namanya table pasti ada baris dan kolom, demikian juga dengan TableLayout ini, view yang ada dalam layout ini akan disusun berdasarkan baris dan kolomnya.dimana ada TableLayout maka did- alamnya akan ada TableRow
TableRow adalah child dari TableLayout. Setiap Satu TableRow merupakan 1 baris dalam table.
Pusing yang dengan teori, yah sudah kita langsung praktek saja.
Masih dengan project yang tadi buat pada directory res/layout buat layout baru dengan nama tablelayout.xml
Sacara ototmatis akan membuat file tablelayout.xml difolder layout, Edit file tersebut lalu ketikkan kode berikut
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/and roid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow>
<TextView
android:text="Nama"
android:padding="3dip"
android:background="#0000AA"/>
<TextView
android:text="Nilai"
android:gravity="right"
android:padding="3dip"
android:background="#0000AA" />
</TableRow>
<TableRow>
<TextView
android:text="Agus"
android:padding="3dip" />
<TextView
android:text="90"
android:gravity="right"
android:padding="3dip" />
</TableRow>
<TableRow>
<TextView
android:text="Zainal"
android:padding="3dip" />
<TextView
android:text="80"
android:gravity="right"
android:padding="3dip" />
</TableRow>
</TableLayout>
Pada file tablelayout.xml diatas terdapat 1 TableLayout yang did- alamnya 3 TableRow, disetiap TableRow masing-masing mem- punya 2 TextView, dari struktur code diatas maka akan terlihat se- buah table yang mempunyai 3 baris dan 2 kolom.
buka file MainActivity.java rubah layout yang digunakan un- tuk activity ini menjadi yang semula activity_main menjadi tablelayout
package net.agusharyanto.belajarandroidlayout;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.tablelayout);
} }
Sekarang mari kita run projectnya
Nah Betulkan hasilnya dalam bentuk table dangan 3 baris dan 2 ko- lom.
RelativeLayout
RelativeLayout sesuai dengan namanya, disini kita dapat menen- tukan posisi dari suatu view berdasarkan sudut pandang parent atau siblingnya.
Agar lebih mudah dimengerti mari kita mulai lagi codingnya
1. Masih dengan project yang tadi buat pada directory res/layout buat layout baru dengan nama relativelayout.xml caranya sama seperti buat tablelayout diatas hanya pada jendela New Android XML File pada root elementnya pilih RelativeLayout
Pada file relativelayout.xml ketikan kode berikut
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/and roid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#005500"
android:padding="10px" >
<TextView android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Isi Pesan:" />
<EditText android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_backgro und"
android:layout_below="@id/label" />
<Button android:id="@+id/kirim"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10px"
android:text="Kirim" />
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/kirim"
android:layout_alignTop="@id/kirim"
android:text="Cancel" />
</RelativeLayout>
2. Buka file MainActivity.java
package net.agusharyanto.belajarandroidlayout;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.relativelayout);
} }
3. Sekarang mari kita run projectnya
AbsoluteLayout
Absolute Layout dapat digunakan untuk meletakkan view sesuai dengan posisi yang kita inginkan.
• Masih dengan project yang tadi buat pada directory res/layout buat layout baru dengan nama absolutelayout.xml
<?xml version="1.0" encoding="utf-8"?>
< AbsoluteLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Button
android:layout_width = "188px"
android:layout_height="wrap_content"
android:text = "Button"
android:layout_x = "126px"
android:layout_y = "361px"
/>
<Button
android:layout_width = "113px"
android:layout_height="wrap_content"
android:text = "Button"
android:layout_x = "12px"
android:layout_y = "361px"
/>
</AbsoluteLayout>
• Buka file MainActivity.java
package net.agusharyanto.belajarandroidlayout;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.absolutelayout);
} }
• Sekarang mari kita run projectnya
M
E N G E N A LV
I E WSebelumnya kita telah belajar tentang layout pada android disitu me- lihat ada TextView, Button dan lain-lain. Nah TextView, Button dan kawan-kawannya itu kalau diandroid disebut sebagai View, View ini adalah komponen-komponen yang membentuk user interface pada aplikasi android.
Kita bisa mengelompokkan view ini dalam beberapa group.
• Basic Views, biasanya ini yang umum atau sering digunakan seperti TextView, EditText dan Button
• Picker Views, biasanya berupa pilihan untuk menginputkan Date dan Time seperti DatePicker dan TimePicker.
• List Views, biasanya menampilkan daftar pilihan yang panjang sep- erti ListView dan Spinner View
• Display Views – view yang digunakan untuk menampilkan gambar seperti Gallery dan ImageSwitcher views.
• Menus – views yang menampilkan tambahan menu ataupun context menu
• Additional Views seperti AnalogClock dan DigitalClock
Basic View
Pada Seksi ini, kita akan membahas basic view pada android, untuk meudahkan saya akan menjelaskanya dalam bentuk table
TextView
EditText
Button
ImageButton
CheckBox
ToggleButton
RadioButton
RadioGroup
Widget Fungsi
TextView sama seperti label pada SWING, yaitu untuk menampilkan tulisan dilayar.
EditText sama seperti TextBox pada SWING, yaitu untuk user menginputkan data
Button Sama seperti Button pada SWING yaiu sebagai Trigger untuk menjalankan suatu Fungsi
ImageButton Sama fungsinya seperti Button, Bedanya Button ini didalamnya ada gambarnya CheckBox Digunakan apabila ada pertanyaan pili-
han yang jawabannya bisa lebih dari satu Radio Button Biasanya digunakan untuk pilihan yang
jawabannya 1
Radio Group Kumpulan dari Radio Button
Sekarang mari kita coba gunakan view-view diatas kedalam aplikasi.
1. Buat New Android Projectnya
2. edit file activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/andr oid"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button android:id="@+id/btnSave"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Save"
/>
<Button android:id="@+id/btnOpen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Open"
/>
<ImageButton android:id="@+id/btnImg1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
/>
<EditText android:id="@+id/txtName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<CheckBox android:id="@+id/chkAutosave"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Autosave"
/>
<CheckBox android:id="@+id/star"
style="?android:attr/starStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<RadioGroup android:id="@+id/rdbGp1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<RadioButton android:id="@+id/rdb1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Option 1"
/>
<RadioButton android:id="@+id/rdb2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Option 2"
/>
</RadioGroup>
<ToggleButton android:id="@+id/toggle1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
Perhatikan atribut id yang mewakili identitas dari setiap view. Un- tuk mendeklarasikan id pada sebuah view harus diawali dengan
“@+id/” diikuti dengan nama yang ingin kita berikan 3. Sekarang mari kita jalankan projectnya
Coba kita sentuh beberapa view, hasilnya ada yang seperti ini
Tetapi tentunya kita tidak ingin hanya ditampilan saja yang berubah.
Tentunya kita ingin program juga dapat menangkap apa yang terjadi pada user Interface.
Untuk itu mari kita buka otak dari project kita, yaitu file Main- Activity.java
package net.agusharyanto.basicview;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RadioGroup;
import
android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;
import android.widget.ToggleButton;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//---Button view---
Button btnOpen = (Button) findViewById(R.id.btnOpen);
btnOpen.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(getBaseContext(), "You have clicked the Open button",
Toast.LENGTH_SHORT).show();
} });
Button btnSave = (Button) findViewById(R.id.btnSave);
btnSave.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
DisplayToast("You have clicked the Save button");
} });
//---CheckBox---
CheckBox checkBox = (CheckBox) findViewById(R.id.chkAutosave);
checkBox.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
if (((CheckBox)v).isChecked()) DisplayToast("CheckBox is checked");
else
DisplayToast("CheckBox is unchecked");
} });
//---RadioButton---
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.rdbGp1);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId) {
//---displays the ID of the RadioButton that is checked---
DisplayToast(Integer.toString(checkedId));
} });
//---ToggleButton---
ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggle1);
toggleButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
if (((ToggleButton)v).isChecked()) DisplayToast("Toggle button is On");
else
DisplayToast("Toggle button is Off");
} });
}
private void DisplayToast(String msg) {
Toast.makeText(getBaseContext(), msg,
Toast.LENGTH_SHORT).show();
} }
Oke mari kita perhatikan code by codenya Button btnOpen = (Button) findViewById(R.id.btnOpen);
btnOpen.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(getBaseContext(), "You have clicked the Open button",
Toast.LENGTH_SHORT).show();
} });
Agar sebuah view bisa kita manipulasi (merubah isi, atau men- angkap event) perlu didaftarkan di code activity.
Contoh diatas kita mendaftarkan View (Button) dengan id bt- nOpen kedalam sebuah variable btnOpen. setelah itu kita bisa me- nambahkan listener pada button tersebut, kalau pada code diatas yang kita daftarkan adalah setOnClickListener. Efek yang terjadi adalah apabila btnOpen diklik maka akan mengeksekusi perintah yang ada pada method onClick. Pada kode diatas akan menampilkan popup informasi dalam bentuk Toast
Untuk Button lainnya dan view lainnya silahkan dicoba sendiri.
Dan perhatikan pada method setOnclick dari masing-masing view.
Tugas
Kerjakan tugas-tugas dibawah ini
1. Buatlah aplikasi kalkulator sederhana yang fungsinya menghi- tung dua bilangan seperti dibawah ini
A N D R O I D D ATA B A S E
SQLITE
Sebelumnya kita sudah belajar membuat aplikasi sederhana pada Android, nah sekarang mari kita buat aplikasi yang lebih keren, aplikasi yang menggunakan database SQLite.
SQLITE
Seperti telah dijelaskan diatas database pada android menggun- akan SQLite. Dengan SQLite untuk insert, update dan query data dapat dilakukan dengan syntak SQL.
Untuk itu sebelum melangkah pembuatan aplikasi Android yang memanfatkan firtur SQlite databasenya, kita harus menguasai cara menggunakan SQLite.
Sama seperti database lainnya syntak SQLnya terbagi 2 kategori yaitu syntak untuk Data Definition Language (DDL) dan Data Manip- ulation Language (DML). Bagi yang pernah belajar database pasti tidak asing dengan kedua istilah tersebut.
Sekarang ada pertanyaan nih apa beda DDL dan DML ?
3
Biar mudah dipahami, kalau database itu kita ibaratkan sebuah rumah, maka DDL itu adalah syntax untuk membuat rumah, menam- bah kamar, merubah bangunan rumah, makanya yang termasuk syn- tak-syantak DDL adalah create table, alter table, drop table.
sedangkan DML adalah syntax untuk mengetahui isi rumah, siapa saja penghuninya, berapa jumlahnya, ada berapa yang pria dan yang wanita, adakah anak-anak dirumah itu.
Makanya yang termasuk syntak-syntak DML adalah insert, up- date, delete, select
Untuk mengetahui lebih lanjut tentang sqlite bisa kunjungi SQL- ite Home Page
K
A M U ST
I G AB
A H A S A(CRUD)
Sekarang mari kita buat project yang menggunakan database sqlite di android. Dulu sebelum pakai android dihandphone yang dulu pasati pernah install kamus inggris Indonesia, yang kita gun- akan untuk mencari terjemahan suatu kata dalam bahasa indonesia ke bahasa inggris dan jerman. Sebetulnya diandroid juga sudah ada yang buat. Tetapi tentunya akan lebih puas jika kita buat sendiri.
Goal dari Aplikasi ini adalah untuk memahami CRUD dbsqlite pada Android.
Berikut langkah-langkahnya
1. Buat project baru android dengan nama Kamus
2. Buat Class baru dengan nama DatabaseHelper.java package net.agusharyanto.kamus;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME =
"dbkamus";
public static final String INGGRIS= "inggris";
public static final String INDONESIA =
"indonesia";
public static final String JERMAN = "JERMAN";
//Constructor DataKamus untuk initiate database
public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, 1);
}
//method createTable untuk membuat table kamus public void createTable(SQLiteDatabase db){
db.execSQL("DROP TABLE IF EXISTS kamus");
db.execSQL("CREATE TABLE if not exists kamus (_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"inggris TEXT, indonesia TEXT, jerman TEXT);");
}
//method generateData untuk mengisikan data ke kamus.
public void generateData(SQLiteDatabase db){
ContentValues cv=new ContentValues();
cv.put(INGGRIS, "run");
cv.put(INDONESIA, "lari");
cv.put(JERMAN, "laufen");
db.insert("kamus", INGGRIS, cv);
cv.put(INGGRIS, "walk");
cv.put(INDONESIA, "jalan");
cv.put(JERMAN, "gehen");
db.insert("kamus", INDONESIA, cv);
cv.put(INGGRIS, "read");
cv.put(INDONESIA, "membaca");
cv.put(JERMAN, "lesen");
db.insert("kamus", JERMAN, cv);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub createTable(db);
generateData(db);
}
@Override
public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub //Toast.makeText(getBaseContext(),
"Oncreate", Toast.LENGTH_SHORT).show();
createTable(db);
generateData(db);
} }
Pada class inilah database dibuat dengan nama dbkamus, disini table juga dibuat dengan nama kamus dan diisikan dengan beberapa data.
3. Edit file activity_main.xml pada direktori res/layout lalu ketikan kode berikut
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/andr oid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Kamus Inggris Indonesia Jerman"
/>
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Inggris :" >
</TextView>
<EditText
android:id="@+id/txtInggris"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="" >
<requestFocus>
</requestFocus>
</EditText>
<Button
android:id="@+id/btnTerjemah"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="getTerjemahan"
android:text="Terjemahkan" >
</Button>
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Indonesia :" >
</TextView>
<EditText
android:id="@+id/txtIndonesia"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false"
android:text="" >
</EditText>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Jerman" >
</TextView>
<EditText
android:id="@+id/txtJerman"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</EditText>
</LinearLayout>
Disini untuk user interface menggunakan linear layout yang did- alamnya ada tiga edit text dan satu button
4. Edit file MainActivity.java yang ada apada direktori src/ lalu ketikan kode berikut
package net.agusharyanto.kamus;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private SQLiteDatabase db = null;
private Cursor kamusCursor = null;
private EditText txtInggris;
private EditText txtIndonesia;
private EditText txtJerman;
private DatabaseHelper datakamus = null;
public static final String INGGRIS = "inggris";
public static final String INDONESIA =
"indonesia";
/** Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
datakamus = new DatabaseHelper(this);
db = datakamus.getWritableDatabase();
setContentView(R.layout.activity_main);
txtInggris = (EditText) findViewById(R.id.txtInggris);
txtIndonesia = (EditText) findViewById(R.id.txtIndonesia);
txtJerman = (EditText) findViewById(R.id.txtJerman);
}
public void getTerjemahan(View view) { String bhsindonesia = "";
String bhsjerman="";
String englishword = txtInggris.getText().toString();
kamusCursor = db.rawQuery("SELECT _ID, INGGRIS, INDONESIA, JERMAN "
+ "FROM kamus where INGGRIS='"
+ englishword
+ "' ORDER BY INGGRIS", null);
if (kamusCursor.moveToFirst()) {
for (; !kamusCursor.isAfterLast();
kamusCursor.moveToNext()) {
bhsindonesia = kamusCursor.getString(2);
bhsjerman = kamusCursor.getString(3);
} }else{
Toast.makeText(getBaseContext(),
"Terjemahan Tidak ditemukan", Toast.LENGTH_SHORT).show();
}
txtIndonesia.setText(bhsindonesia);
txtJerman.setText(bhsjerman);
}
@Override
public void onDestroy() { super.onDestroy();
try {
kamusCursor.close();
db.close();
}catch (Exception e){
} }
}
5. Sekarang mari kita run projectnya
Pada isian Inggris ketikan run lalu klik button Terjemahkan.
Coba isi inggris diisi dengan sepatu lalu klik Terjemahkan Coba inggris tidak diisi lalu klik Terjemahkan
6. Oke kita sudah berhasil membuat kamus, sekarang kita ingin menampilkan kata-kata dalam database kedalam list.
7. Buat Layout baru dengan nama row.xml lalu ketikan kode berikut
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/andr oid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:paddingBottom="5sp"
android:paddingTop="5sp" >
< TextView
android:id="@+id/inggris"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true" />
< TextView
android:id="@+id/indonesia"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/inggris" />
< TextView
android:id="@+id/jerman"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/indonesia" />
</RelativeLayout>
8. Buat Layout baru dengan nama daftarkata.xml lalu ketikan kode berikut
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/andr oid"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text = "Inggris"
android:textSize="20sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/textView1"
android:text = "Indonesia"
android:textSize="20sp" />
<TextView
android:id="@+id/textView3"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/textView2"
android:text = "Jerman"
android:textSize="20sp" />
<ListView android:id="@+id/list1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight = "1"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"/>
</RelativeLayout>
9. Buat Class baru dengan nama Daftarkata.java lalu ketikkan kode berikut.
package net.agusharyanto.kamus;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class DaftarKata extends Activity { private DatabaseHelper dbhelper;
private SQLiteDatabase db = null;
private ListView listContent = null;
private Cursor kamusCursor = null;
CustomCursorAdapter adapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
dbhelper = new DatabaseHelper(this);
setContentView(R.layout.daftarkata);
listContent = (ListView) findViewById(R.id.list1);
isDataListView();
}
private void isDataListView() { try {
db = dbhelper.getWritableDatabase();
kamusCursor = db.query("kamus", new String[] { "_id", "inggris",
"indonesia", "jerman" },
"_id>0", null, null, null, null);
// startManagingCursor( jasaCursor);
/*
* Create an array to specify the fields we want to display in the
* list (only the
'inggris,indonesia,jerman' column in this case) */
String[] from = new String[] {
"inggris", "indonesia", "jerman" };
/*
* and an array of the fields we want to bind those fieiplds to (in
* this case just the textView 'inggris,indonesia,jerman' from our new row.xml
* layout above) */
int[] to = new int[] { R.id.inggris, R.id.indonesia, R.id.jerman };
/* Now create a simple cursor adapter.. */
adapter = new
CustomCursorAdapter(this, R.layout.row, kamusCursor, from, to);
// listView.setAdapter(adapter);
listContent.setAdapter(adapter);
} catch (Exception e) { e.printStackTrace();
} finally {
if (db != null && db.isOpen()) { db.close();
} }
}
@Override
public void onDestroy() { super.onDestroy();
try {
kamusCursor.close();
} catch (Exception e) { }
}
protected class CustomCursorAdapter extends SimpleCursorAdapter {
private int layout;
private LayoutInflater inflater;
private Context context;
public CustomCursorAdapter(Context context,
int layout, Cursor c,
String[] from, int[] to) { super (context, layout, c, from, to);
this.layout = layout;
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
Log.d("NewView", "*****xxx");
View v =
inflater.inflate(R.layout.row, parent, false);
return v;
}
@Override
public void bindView(View v, Context context, Cursor c) {
// 1 is the column where you're getting your data from
String inggris = c.getString(1);
String jerman = c.getString(3);
String indonesia = c.getString(2);
/**
* Next set the name of the entry.
*/
TextView name_text = (TextView) v.findViewById(R.id.inggris);
TextView des_text = (TextView) v.findViewById(R.id.jerman);
TextView id_text = (TextView) v.findViewById(R.id.indonesia);
des_text.setText(jerman);
id_text.setText(indonesia);
if (name_text != null) {
name_text.setText(inggris);
}
} }
}
10. Rubah bagian yang bercetak tebal pada AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/andr oid"
package="net.agusharyanto.kamus"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="net.agusharyanto.kamus.DaftarKata"
android:label="@string/app_name" >
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
11. Sekarang mari kita Run projectnya.
12. Kita sudah sukses menampilkan daftar kata, selanjutnya kita akan menyedian form untuk menambahkan kata.
13. Buat layout baru dengan nama tambahkata.xml selanjutnya ketikan kode berikut
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/andr oid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text = "Kamus Inggris Indonesia Jerman"
/>
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "Inggris :" >
</TextView>
< EditText
android:id="@+id/txtInggris"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="" >
</EditText>
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "Indonesia :" >
</TextView>
< EditText
android:id="@+id/txtIndonesia"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="" >
</EditText>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "Jerman" >
</TextView>
< EditText
android:id="@+id/txtJerman"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</EditText>
<Button
android:id="@+id/btnTerjemah"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="saveData"
android:text = "Save Data" >
</Button>
</LinearLayout>
14. Buat class baru dengan nama TambahKata.java package net.agusharyanto.kamus;
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class TambahKata extends Activity{
private SQLiteDatabase db = null;
private EditText txtInggris;
private EditText txtIndonesia;
private EditText txtJerman;
private DatabaseHelper datakamus = null;
public static final String INGGRIS= "inggris";
public static final String INDONESIA =
"indonesia";
public static final String JERMAN = "JERMAN";
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
datakamus = new DatabaseHelper(this);
db = datakamus.getWritableDatabase();
setContentView(R.layout.tambahkata);
txtInggris = (EditText) findViewById(R.id.txtInggris);
txtIndonesia = (EditText) findViewById(R.id.txtIndonesia);
txtJerman = (EditText) findViewById(R.id.txtJerman);
}
public void saveData(View view) { String bhsindonesia = txtIndonesia.getText().toString();;
String bhsjerman=
txtJerman.getText().toString();
String englishword = txtInggris.getText().toString();
ContentValues cv=new ContentValues();
cv.put(INGGRIS, englishword);
cv.put(INDONESIA, bhsindonesia);
cv.put(JERMAN, bhsjerman);
if (db.insert("kamus", INGGRIS, cv)>0){
Toast.makeText(getBaseContext(),
"Save Data Success", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getBaseContext(),
"Save Data Fail", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onDestroy() { super.onDestroy();
db.close();
} }
15. Rubah AndroidManifest.xml yang bercetak tebal
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/andr
oid"
package="net.agusharyanto.kamus"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="net.agusharyanto.kamus.TambahKata"
android:label="@string/app_name" >
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
16. Sekarang mari kita run projectnya.
17. Bagaimana melihat hasilnya ? apa harus rubah AndroidMani- fest.xml. Cara yang lebih baik adalah dengan membuat menu yang dapat mengakses form Terjemahan, Daftar Kata dan Tambah Kata 18. Buat Class baru dengan nama MenuActivity.java lalu ketikkan kode berikut
package net.agusharyanto.kamus;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MenuActivity extends ListActivity { String[] menuutama = new String[] { "Terjemah Kata", "Tambah Kata",
"Daftar Kata", "Keluar Aplikasi" };
public void onCreate(Bundle icicle) { super.onCreate(icicle);
// Menset nilai array ke dalam list adapater sehingga data pada array
// akan dimunculkan dalam list this.setListAdapter(new
ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, menuutama));
}
@Override
/**method ini akan mengoveride method onListItemClick yang ada pada class List Activity
* method ini akan d1ipanggil apabilai ada salah satu item dari list menu yang dipilih
*/
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Menangkap nilai text yang dklik Object o =
this.getListAdapter().getItem(position);
String pilihan = o.toString();
// Menampilkan hasil pilihan menu dalam bentuk Toast
tampilkanPilihan(pilihan);
}
protected void tampilkanPilihan(String pilihan) { try {
//Intent digunakan untuk sebagai pengenal suatu activity
Intent i = null;
if (pilihan.equals("Terjemah Kata")) {
i = new Intent(this,MainActivity.class);
} else if (pilihan.equals("Tambah Kata")) {
i = new Intent(this, TambahKata.class);
} else if (pilihan.equals("Daftar Kata")) {
i = new Intent(this, DaftarKata.class);
} else if (pilihan.equals("Keluar Aplikasi")) {
finish();
} else {
Toast.makeText(this,"Anda Memilih: " + pilihan + " , Actionnya belum dibuat", Toast.LENGTH_LONG).show();
}
startActivity(i);
} catch (Exception e) { e.printStackTrace();
} }
}
19. Pada AndroidManifest.xml rubah dan tambahkan yang bercetak tebal
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/andr oid"
package="net.agusharyanto.kamus"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="net.agusharyanto.kamus.MenuActivity"
android:label="@string/app_name" >
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="MainActivity"
android:label="Terjemah Kata">
</activity>
<activity android:name="DaftarKata"
android:label="Daftar Kata">
</activity>
<activity android:name="TambahKata"
android:label="Tambah Kata">
</activity>
</application>
</manifest>
20. Sekarang mari kita run projectnya
Klik masing-masing menu.
21. Sekarang kita melangkah kebagian Rubah data dan Hapus data.
Pasti kita memikirkan bagaiman cara menempatkan Edit dan Hapus ini. Aha kita letakan saja di DaftarKata. Jadi ketika satu baris kata di klik lama (long click) akan memunculkan menu edit dan hapus.
22. Buka file String.xml pada direktori value ketikan kode berikut
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Kamus</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="ok">OK</string>
<string name="save">Simpan</string>
<string name="cancel">Cancel</string>
<string name="add_title">Edit Kamus</string>
<string name="delete_title">Hapus Kamus, And yakin ?</string>
</resources>
23. Tambahkan layout untuk edit data beri nama edit.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/andr oid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "Inggris :" >
</TextView>
< EditText
android:id="@+id/inggris"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="" >
</EditText>
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "Indonesia :" >
</TextView>
< EditText
android:id="@+id/indonesia"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="" >