pemrograman mobile - style, menu, & dialog box

35
LAPORAN PRAKTIKUM PEMROGRAMAN APLIKASI MOBILE JOB 5 – Style, Menu, & Dialog Box Disusun oleh : Nama : Danang Istoe Nugroho NIM : 3.34.12.0.06 PROGAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK ELEKTRO POLITEKNIK NEGERI SEMARANG

Upload: danang-istu-nugroho

Post on 29-Jan-2016

60 views

Category:

Documents


1 download

DESCRIPTION

Style, Menu, & Dialog Box Android Java

TRANSCRIPT

Page 1: Pemrograman Mobile - Style, Menu, & Dialog Box

LAPORAN PRAKTIKUM

PEMROGRAMAN APLIKASI MOBILE

JOB 5 – Style, Menu, & Dialog Box

Disusun oleh :

Nama : Danang Istoe Nugroho

NIM : 3.34.12.0.06

PROGAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI SEMARANG

2014/2015

Style, Menu, & Dialog Box

Page 2: Pemrograman Mobile - Style, Menu, & Dialog Box

I. Tujuan Instruksional Khusus

Setelah melakukan praktikum ini mahasiswa diharapkan dapat :

1. Mengetahui dan mengenal semua jenis Style dan Theme aplikasi android

2. Mengimplementasikan Style dan Theme ke aplikasi sederhana android

menggunakan aplikasi Android Studio.

3. Mengetahui berbagai jenis menu yang dapat di implementasikan pada android

beserta konsep dasat dari penggunaannya.

4. Mengimplementasikan menu pada aplikasi sederhana android menggunakan

aplikasi Android Studio.

II. Dasar Teori

Apa itu Android?

Android merupakan open source dan berbasis Sistem Operasi Linux untuk perangkat

mobile seperti smartphone dan komputer tablet. Android dikembangkan oleh Open

Handset Alliance, yang dipimpin oleh Google, dan perusahaan lain. Android

menawarkan pendekatan terpadu untuk pengembangan aplikasi untuk perangkat

mobile yang berarti pengembang hanya perlu mengembangkan untuk Android, dan

aplikasi mereka harus mampu berjalan pada perangkat yang berbeda didukung oleh

Android.

Versi beta pertama dari Android Software Development Kit (SDK) dirilis oleh

Google pada tahun 2007 di mana sebagai versi komersial pertama, Android 1.0, dirilis

pada bulan September 2008.

Pada tanggal 27 Juni 2012, di / O konferensi Google I, Google mengumumkan versi

Android berikutnya, 4.1 Jelly Bean. Jelly Bean adalah update inkremental, dengan

tujuan utama meningkatkan antarmuka pengguna, baik dari segi fungsi dan kinerja.

Kode sumber untuk Android tersedia di bawah lisensi perangkat lunak bebas dan open

source. Google menerbitkan sebagian besar kode di bawah Apache License versi 2.0

dan sisanya, perubahan kernel Linux, di bawah versi GNU General Public License 2.

Fitur Android

Android adalah sistem operasi yang kuat bersaing dengan Apple 4GS dan mendukung

fitur yang besar. Beberapa dari mereka tercantum di bawah ini:

Fitur Keterangan

UI yang Android OS layar dasar menyediakan antarmuka pengguna

Page 3: Pemrograman Mobile - Style, Menu, & Dialog Box

indah yang indah dan intuitif.

Konektivitas GSM / EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth,

Wi-Fi, LTE, NFC dan WiMAX

Penyimpanan SQLite, database relasional ringan, digunakan untuk tujuan

penyimpanan data.

Dukungan

media

H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-

AAC, AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV, JPEG,

PNG, GIF, BMP

Messaging SMS dan MMS

Web browser Berdasarkan open source WebKit layout engine, ditambah

dengan mesin V8 JavaScript Chrome mendukung HTML5

dan CSS3.

Multi-touch Android memiliki dukungan asli untuk multi-touch yang

awalnya dibuat tersedia dalam handset seperti HTC Hero.

Multi-tasking Pengguna dapat melompat dari satu tugas ke yang lain dan

waktu yang sama berbagai aplikasi dapat berjalan secara

bersamaan.

Widget

resizable

Widget adalah resizable, sehingga pengguna dapat

memperluas mereka untuk menunjukkan lebih banyak konten

atau mengecilkan mereka untuk menghemat ruang

Multi-Bahasa Mendukung satu arah dan teks bi-directional.

GCM Google Cloud Messaging (GCM) adalah layanan yang

memungkinkan pengembang mengirim data pesan singkat

kepada pengguna mereka pada perangkat Android, tanpa

perlu solusi sync proprietary.

Wi-Fi Direct Sebuah teknologi yang memungkinkan aplikasi menemukan

dan pasangan secara langsung, melalui bandwidth tinggi

peer-to-peer koneksi.

Android

Beam

Sebuah teknologi berbasis NFC populer yang memungkinkan

pengguna langsung berbagi, hanya dengan menyentuh dua

ponsel NFC-enabled bersama-sama.

Aplikasi Android

Aplikasi Android biasanya dikembangkan dalam bahasa Java dengan menggunakan

Android SDK. Setelah dikembangkan, aplikasi Android dapat dikemas dengan mudah

dan dijual keluar baik melalui toko seperti Google Play atau Amazon Appstore.

Kekuatan Android ratusan juta perangkat mobile di lebih dari 190 negara di seluruh

dunia. Ini adalah dasar terinstal terbesar dari platform mobile dan tumbuh cepat.

Setiap hari lebih dari 1 juta perangkat Android baru diaktifkan di seluruh dunia.

Page 4: Pemrograman Mobile - Style, Menu, & Dialog Box

Arsitektur

Sistem operasi Android adalah tumpukan komponen software yang dibagi menjadi

lima bagian dan empat lapisan utama seperti yang ditunjukkan di bawah ini dalam

diagram arsitektur.

Linux Kernel

Di bagian bawah lapisan adalah Linux - Linux 2.6 dengan sekitar 115 patch. Ini

menyediakan sistem fungsi dasar seperti manajemen proses, manajemen memori,

manajemen perangkat seperti kamera, keypad, layar dll Juga, kernel menangani

semua hal yang Linux benar-benar baik di seperti jaringan dan array yang luas dari

driver perangkat, yang mengambil nyeri dari interfacing dengan hardware perifer.

Libraries

Di atas kernel Linux ada satu set perpustakaan termasuk open-source WebKit browser

Web mesin, libc perpustakaan terkenal, basis data SQLite yang merupakan repositori

yang berguna untuk penyimpanan dan berbagi data aplikasi, perpustakaan untuk

bermain dan merekam audio dan video, SSL perpustakaan yang bertanggung jawab

untuk keamanan internet dll

Android Runtime

Ini adalah bagian ketiga dari arsitektur dan tersedia pada lapisan kedua dari bawah.

Bagian ini menyediakan komponen kunci yang disebut Dalvik Virtual Machine yang

merupakan jenis Java Virtual Machine yang dirancang khusus dan dioptimalkan untuk

Android. Dalvik VM memanfaatkan fitur inti Linux seperti manajemen memori dan

Page 5: Pemrograman Mobile - Style, Menu, & Dialog Box

multi-threading, yang intrinsik dalam bahasa Java. Dalvik VM memungkinkan setiap

aplikasi Android untuk berjalan dalam prosesnya sendiri, dengan contoh sendiri dari

mesin virtual Dalvik. Runtime Android juga menyediakan satu set inti perpustakaan

yang memungkinkan pengembang aplikasi Android untuk menulis aplikasi Android

menggunakan standar bahasa pemrograman Java.

Application Framework

Lapisan Application Framework menyediakan berbagai layanan tingkat tinggi untuk

aplikasi dalam bentuk kelas Java. Pengembang aplikasi yang diizinkan untuk

menggunakan layanan ini dalam aplikasi mereka.

Aplikasi

Anda akan menemukan semua aplikasi Android di lapisan atas. Anda akan menulis

aplikasi yang akan diinstal pada lapisan ini saja. Contoh aplikasi tersebut Kontak

Buku, Browser, Game dll

III. Alat dan Bahan

1. PC Komputer / Laptop

2. Operating System Windows

3. Java Development Kit

4. Android SDK

5. Android Studio.

IV. Langkah Kerja

Praktik 1

Pada praktikum ini adalah membuat contoh dari implementasi Style pada progam

android.

1. Langkah pertama yang dilakukan adalah membuat project baru dengan nama J5-

StyleDemoExample dengan menggunakan program Android Studio.

Page 6: Pemrograman Mobile - Style, Menu, & Dialog Box

2. Kemudian langkah selanjutnya yaitu menuliskan kode program pada

MainActivity.java seperti berikut :

package com.example.danangistu.j5_styledemoexample;

import android.app.Activity;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TextView;

import org.w3c.dom.Text;

public class MainActivity extends Activity {

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

//--- Mancari kedua tombol Button sButton =(Button) findViewById(R.id.button_s); Button lButton =(Button) findViewById(R.id.button_l);

//-- Mendaftarkan event klik tombol pertama sButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //-- Mencari text view-- TextView txtView = (TextView) findViewById(R.id.text_id); //--Mengubah ukuran text txtView.setTextSize(20); } }); //--Mendaftarkan even klik tombol kedua lButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Mencari text view TextView txtView = (TextView) findViewById(R.id.text_id);

Page 7: Pemrograman Mobile - Style, Menu, & Dialog Box

//Mengubah ukuran text txtView.setTextSize(24); } }); }

@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; }}

3. Selanjutnya pada activity_main.xml tuliskan kode program xml sebagai berikut :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >

<Button android:id="@+id/button_s" style="@style/CustomButtonStyle" android:text="Button Small" android:onClick="doSmall" android:layout_height="58dp" />

<Button android:id="@+id/button_l" style="@style/CustomButtonStyle" android:text="Button Large" android:onClick="doLarge" android:layout_height="58dp" />

<TextView android:id="@+id/text_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:capitalize="characters" android:text="@string/hello_world" />

</LinearLayout>

4. Pada direktori res/values/string.xml dapat menggunakan kode program sebagai

berikut untuk mendefinisikan dua constant baru.

<?xml version="1.0" encoding="utf-8"?><resources>

<string name="app_name">StyleDemo</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="button_small">Small Font</string> <string name="button_large">Large Font</string>

</resources>

5. Selanjutnya pada style_main.xml tuliskan kode program xml sebagai berikut

<resources>

<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

Page 8: Pemrograman Mobile - Style, Menu, & Dialog Box

<!-- Customize your theme here. --> </style> <!-- Custom Style defined for the buttons. --> <style name="CustomButtonStyle"> <item name="android:layout_width">100dp</item> <item name="android:layout_height">38dp</item> <item name="android:capitalize">characters</item> <item name="android:typeface">monospace</item> <item name="android:shadowDx">1.2</item> <item name="android:shadowDy">1.2</item> <item name="android:shadowRadius">2</item> <item name="android:textColor">#494948</item>/> <item name="android:gravity" >center</item> <item name="android:layout_margin" >3dp</item> <item name="android:textSize" >5pt</item> <item name="android:shadowColor" >#000000</item> </style>

</resources>

6. Berikut adalah default content dari AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.danangistu.j5_styledemoexample" >

<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".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>

7. Selanjutnya untuk menjalankan program klik run app pada bagian menu bar atau

dengan menekan tombol Shift + F10 pada keyboard.

8. Akan muncul jendela choose device untuk menampilkan emulator yang akan

digunakan untuk menjalankan aplikasi.

Page 9: Pemrograman Mobile - Style, Menu, & Dialog Box

9. Hasil dari program di atas adalah sebagai berikut :

Page 10: Pemrograman Mobile - Style, Menu, & Dialog Box

Praktik 2

Pada praktikum ini adalah membuat contoh dari implementasi Theme pada progam

android.

1. Langkah pertama yang dilakukan adalah membuat project baru dengan nama J5-

ThemeDemoExample dengan menggunakan program Android Studio.

2. Kemudian langkah selanjutnya yaitu menuliskan kode program pada

MainActivity.java seperti berikut :

package com.example.danangistu.j5_themedemoexample;

import android.support.v7.app.ActionBarActivity;

Page 11: Pemrograman Mobile - Style, Menu, & Dialog Box

import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

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

Button sButton =(Button) findViewById(R.id.button_s); Button lButton = (Button) findViewById(R.id.button_l);

// -- register click event with first button --- sButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // --- find the text view -- TextView txtView = (TextView) findViewById(R.id.text_id); // -- change text size -- txtView.setTextSize(20); } });

// -- register click event with second button --- lButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // --- find the text view -- TextView txtView = (TextView) findViewById(R.id.text_id); // -- change text size -- txtView.setTextSize(24); } }); }

@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; }

@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId();

//noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; }

return super.onOptionsItemSelected(item); }}

3. Selanjutnya pada activity_main.xml tuliskan kode program xml sebagai berikut :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Page 12: Pemrograman Mobile - Style, Menu, & Dialog Box

xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >

<Button android:id="@+id/button_s" style="@style/CustomButtonStyle" android:text="Button Small" android:onClick="doSmall" android:layout_below="@+id/text_id" android:layout_toRightOf="@+id/text_id" android:layout_marginLeft="52dp" android:layout_marginStart="52dp" android:layout_marginTop="49dp" android:layout_height="58dp" />

<Button android:id="@+id/button_l" style="@style/CustomButtonStyle" android:text="Button Large" android:onClick="doLarge" android:layout_alignLeft="@+id/button_s" android:layout_alignStart="@+id/button_s" android:layout_above="@+id/text_id" android:layout_alignRight="@+id/button_s" android:layout_alignEnd="@+id/button_s" android:layout_height="58dp" />

<TextView android:id="@+id/text_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:capitalize="characters" android:text="@string/hello_world" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="165dp" />

</LinearLayout>

4. Pada direktori res/values/string.xml dapat menggunakan kode program sebagai

berikut untuk mendefinisikan dua constant baru.

<?xml version="1.0" encoding="utf-8"?><resources>

<string name="app_name">StyleDemo</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="button_small">Small Font</string> <string name="button_large">Large Font</string>

</resources>

5. Selanjutnya pada style_main.xml tuliskan kode program xml sebagai berikut

<resources>

<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="android:capitalize">characters</item> <item name="android:typeface">monospace</item> <item name="android:shadowDx">1.2</item> <item name="android:shadowDy">1.2</item>

Page 13: Pemrograman Mobile - Style, Menu, & Dialog Box

<item name="android:shadowRadius">2</item> <item name="android:textColor">#494948</item>/> <item name="android:gravity" >center</item> <item name="android:layout_margin" >3dp</item> <item name="android:textSize" >5pt</item> <item name="android:shadowColor" >#000000</item> </style> <!-- Custom Style defined for the buttons. --> <style name="CustomButtonStyle"> <item name="android:layout_width">100dp</item> <item name="android:layout_height">38dp</item> </style>

</resources>

6. Berikut adalah default content dari AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.danangistu.j5_styledemoexample" >

<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".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>

7. Selanjutnya untuk menjalankan program klik run app pada bagian menu bar atau

dengan menekan tombol Shift + F10 pada keyboard.

8. Akan muncul jendela choose device untuk menampilkan emulator yang akan

digunakan untuk menjalankan aplikasi.

Page 14: Pemrograman Mobile - Style, Menu, & Dialog Box

9. Hasil dari program di atas adalah sebagai berikut :

Page 15: Pemrograman Mobile - Style, Menu, & Dialog Box

Praktik 3

Pada praktikum ini adalah membuat contoh dari implementasi Menu pada progam

android.

1. Membuat project baru masih tentang event handling dengan nama J5 – Menu

dengan menggunakan program android studio.

2. Pada tampilan awal, akan muncul jendela dari program sebagai berikut :

Page 16: Pemrograman Mobile - Style, Menu, & Dialog Box

3. Selanjutnya menuliskan kode program java untuk MainActivity.java

package com.example.danangistu.j5_menu;

import android.app.Activity;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.text.Html;import android.text.Spanned;import android.view.ContextMenu;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.EditText;

public class MainActivity extends Activity { EditText etMessage1; EditText etMessage2; Integer[] arrayPointSize = {10,20,30,40,50};

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

etMessage1 = (EditText)findViewById(R.id.etMessage1); etMessage2 = (EditText)findViewById(R.id.etMessage1);

registerForContextMenu (etMessage1); registerForContextMenu (etMessage2);

}

@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. populateMyFirstMenu(menu); return super.onCreateOptionsMenu(menu); }

private void populateMyFirstMenu(Menu menu) { int groupId = 0; int order= 0; //arguments: groupId, optionId, order, title menu.add(groupId, 1, 1, "10 points");

Page 17: Pemrograman Mobile - Style, Menu, & Dialog Box

menu.add(groupId, 2, 2, "20 points"); menu.add(groupId, 3, 3, "30 points"); menu.add(groupId, 4, 4, "40 points"); menu.add(groupId, 5, 5, "50 points"); menu.add(groupId, 6, 8, "Red text"); menu.add(groupId, 7, 7, "Green Text"); menu.add(groupId, 8, 6, "Blue text"); }

@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); // decide what context menu needs to be made if (v.getId() == etMessage1.getId()) // create a menu for etMessage1 box populateMyFirstMenu(menu); if (v.getId() == etMessage2.getId()){ // create a menu for etMessage2 box populateMySecondMenu(menu); } } //onCreateContextMenu

private void populateMySecondMenu(ContextMenu menu) { int groupId = 0; int order= 0; //arguments: groupId, optionId, order, title menu.add(groupId, 9, 1, "Bold"); menu.add(groupId, 10, 2, "Italic"); menu.add(groupId, 11, 3, "Normal"); }

@Override public boolean onContextItemSelected(MenuItem item) { return(applyMenuOption(item));

} @Override public boolean onOptionsItemSelected(MenuItem item) { return(applyMenuOption(item)); }

private boolean applyMenuOption(MenuItem item) { int menuItemId = item.getItemId(); // 1, 2, 3, ...11 String strMsg2 = etMessage2.getText().toString(); if (menuItemId <= 5) { // first five option are for setting text size int newPointSize = arrayPointSize[menuItemId - 1]; etMessage1.setTextSize(newPointSize); etMessage2.setTextSize(newPointSize); } else { if (menuItemId == 6) etMessage1.setTextColor(0xffff0000); // red else if (menuItemId == 7) etMessage1.setTextColor(0xff00ff00); // green else if (menuItemId == 8) etMessage1.setTextColor(0xff0000ff); // blue else if (menuItemId == 9) etMessage2.setText(beautify(strMsg2, "BOLD")); //bold else if (menuItemId == 10) etMessage2.setText(beautify(strMsg2, "ITALIC")); //italic else if (menuItemId == 11) etMessage2.setText(beautify(strMsg2, "NORMAL")); //normal

} return false;

Page 18: Pemrograman Mobile - Style, Menu, & Dialog Box

} // changing text style using HTML formatting// Spanned is text to which you could add formatting features private Spanned beautify (String originalText, String selectedStyle){ Spanned answer = null; if (selectedStyle.equals("BOLD")) answer = Html.fromHtml("<b>" + originalText + "</b"); else if (selectedStyle.equals("ITALIC")) answer = Html.fromHtml("<i>" + originalText +"</i>"); else if (selectedStyle.equals("NORMAL")) answer = Html.fromHtml("<normal>" + originalText +"</normal"); return answer; } //beautify}

4. Pada activity_main.xml tuliskan kode program xml sebagai berikut :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical">

<EditText android:id="@+id/etMessage1" android:text="Hello world" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin = "5dp" />

<EditText android:id="@+id/etMessage2" android:text="Hola mundo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin = "5dp" />

<TextView android:text="Press the MENU key, or \nLong-press text-boxes" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" />

</LinearLayout>

5. Selanjutnya untuk menjalankan program klik run app pada bagian menu bar atau

dengan menekan tombol Shift + F10 pada keyboard.

6. Akan muncul jendela choose device untuk menampilkan emulator yang akan

digunakan untuk menjalankan aplikasi.

Page 19: Pemrograman Mobile - Style, Menu, & Dialog Box

7. Hasil dari program di atas adalah sebagai berikut :

Page 20: Pemrograman Mobile - Style, Menu, & Dialog Box

Praktik 4

1. Membuat project baru masih tentang event handling dengan nama J4 –

EventDemo dengan menggunakan program adnroid studio.

2. Pada tampilan awal, akan muncul jendela dari program sebagai berikut :

Page 21: Pemrograman Mobile - Style, Menu, & Dialog Box

3. Selanjutnya menuliskan kode program java untuk MainActivity.java

package com.example.eventdemo;

import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //--- find both the buttons--- Button sButton = (Button) findViewById(R.id.button_s); Button lButton = (Button) findViewById(R.id.button_l); // -- register click event with first button --- sButton.setOnClickListener(this); // -- register click event with second button --- lButton.setOnClickListener(this); } //--- Implement the OnClickListener callback public void onClick(View v) { if(v.getId() == R.id.button_s) { // --- find the text view -- TextView txtView = (TextView) findViewById(R.id.text_id); // -- change text size -- txtView.setTextSize(14); return; } if(v.getId() == R.id.button_l) { // --- find the text view -- TextView txtView = (TextView) findViewById(R.id.text_id); // -- change text size -- txtView.setTextSize(24); return;

Page 22: Pemrograman Mobile - Style, Menu, & Dialog Box

} }

@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }

4. Untuk setelahnya dapat menggunakan seperti pada program Praktik 1 yaitu J4 –

EventHandling dimana tidak terdapat petubahan kode dari program tersebut.

pada activity_main.xml tuliskan kode program xml sebagai berikut :

<?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/button_s" android:layout_height="wrap_content" android:layout_width="match_parent" android:text="@string/button_small"/> <Button android:id="@+id/button_l" android:layout_height="wrap_content" android:layout_width="match_parent" android:text="@string/button_large"/>

<TextView android:id="@+id/text_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:capitalize="characters" android:text="@string/hello_world" />

</LinearLayout>

5. Pada direktori res/values/string.xml dapat menggunakan kode program sebagai

berikut untuk mendefinisikan dua constant baru.

<?xml version="1.0" encoding="utf-8"?><resources>

<string name="app_name">EventDemo</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="button_small">Small Font</string> <string name="button_large">Large Font</string> </resources>

6. Berikut adalah default content dari AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.guidemo" android:versionCode="1" android:versionName="1.0" >

Page 23: Pemrograman Mobile - Style, Menu, & Dialog Box

<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="com.example.guidemo.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>

7. Selanjutnya untuk menjalankan program klik run app pada bagian menu bar atau

dengan menekan tombol Shift + F10 pada keyboard.

8. Akan muncul jendela choose device untuk menampilkan emulator yang akan

digunakan untuk menjalankan aplikasi.

9. Hasil dari program di atas adalah sebagai berikut :

Page 24: Pemrograman Mobile - Style, Menu, & Dialog Box

Praktik 4

1. Membuat project baru masih tentang event Menu dengan nama J5–

OptionContextMenu dengan menggunakan program android studio.

Page 25: Pemrograman Mobile - Style, Menu, & Dialog Box

8. Pada tampilan awal, akan muncul jendela dari program sebagai berikut :

9. Selanjutnya menuliskan kode program java untuk MainActivity.java

package com.example.danangistu.j5_optioncontextmenu;

import android.app.Activity;import android.app.ListActivity;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.ContextMenu;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.TextView;

public class MainActivity extends ListActivity { TextView selection; // data to be displayed in the ListView String[] items = {"this", "is", "a", "really", "really2", "really3", "really4", "really5", "silly", "list"}; public static final int EIGHT_ID = Menu.FIRST + 1; public static final int SIXTEEN_ID = Menu.FIRST + 2;

Page 26: Pemrograman Mobile - Style, Menu, & Dialog Box

public static final int TWENTY_FOUR_ID = Menu.FIRST + 3; public static final int TWO_ID = Menu.FIRST + 4; public static final int THIRTY_TWO_ID = Menu.FIRST + 5; public static final int FORTY_ID = Menu.FIRST + 6; public static final int ONE_ID = Menu.FIRST + 7; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

//show array data into list

setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items)); selection = (TextView) findViewById(R.id.selection); //attach a ContextMenu to the Activity's ListView registerForContextMenu(getListView()); }

public void onListItemClick(ListView parent, View v, int position, long id) { selection.setText(items[position]); }

@Override public void onCreateContextMenu( ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {// if comment it out – no context menu is created populateMenu(menu); }

@Override public boolean onCreateOptionsMenu(Menu menu) { // if comment it out – no option menu is created populateMenu(menu); return (super.onCreateOptionsMenu(menu)); }

@Override public boolean onOptionsItemSelected(MenuItem item) { return ( applyMenuChoice(item) ); }

@Override public boolean onContextItemSelected(MenuItem item) { return ( applyMenuChoice(item) ); }

private void populateMenu(Menu menu) { menu.add(Menu.NONE, ONE_ID, Menu.NONE, "1 Pixel"); menu.add(Menu.NONE, TWO_ID, Menu.NONE, "2 Pixels"); menu.add(Menu.NONE, EIGHT_ID, Menu.NONE, "8 Pixels"); menu.add(Menu.NONE, SIXTEEN_ID, Menu.NONE, "16 Pixels"); menu.add(Menu.NONE, TWENTY_FOUR_ID, Menu.NONE, "24 Pixels"); menu.add(Menu.NONE, THIRTY_TWO_ID, Menu.NONE, "32 Pixels"); menu.add(Menu.NONE, FORTY_ID, Menu.NONE, "40 Pixels"); }

private boolean applyMenuChoice(MenuItem item) { switch (item.getItemId()) { case ONE_ID: getListView().setDividerHeight(1); return (true); case EIGHT_ID: getListView().setDividerHeight(8); return (true);

Page 27: Pemrograman Mobile - Style, Menu, & Dialog Box

case SIXTEEN_ID: getListView().setDividerHeight(16); return (true); case TWENTY_FOUR_ID: getListView().setDividerHeight(24); return (true); case TWO_ID: getListView().setDividerHeight(2); return (true); case THIRTY_TWO_ID: getListView().setDividerHeight(32); return (true); case FORTY_ID: getListView().setDividerHeight(40); return (true); } return (false); }//applyMenuChoice

}

10. Selanjutnya pada activity_main.xml tuliskan kode program xml sebagai berikut :

<?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:id="@+id/selection" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#eeeeee"/> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" /></LinearLayout>

11. Pada direktori res/values/string.xml dapat menggunakan kode program sebagai

berikut untuk mendefinisikan constant baru.

<?xml version="1.0" encoding="utf-8"?><resources>

<string name="app_name">J4 - GridView</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string>

</resources>

12. Selanjutnya untuk menjalankan program klik run app pada bagian menu bar atau

dengan menekan tombol Shift + F10 pada keyboard.

13. Akan muncul jendela choose device untuk menampilkan emulator yang akan

digunakan untuk menjalankan aplikasi.

Page 28: Pemrograman Mobile - Style, Menu, & Dialog Box

14. Hasil dari program di atas adalah sebagai berikut :

Page 29: Pemrograman Mobile - Style, Menu, & Dialog Box

V. Kesimpulan

Pada praktikum yang telah dilakukan dapat disimpulkan bahwa

1. Pada aplikasi android sebuah form yang dikenal sebagai activity dapat

ditampilkan dengan model layout yang beragam, diantaranya adalah linear layout,

relative layout, frame layout, table layout, absolute layout, list view dan grid view.

2. Untuk menangkap interaksi user terhadap aplikasi yang berjalan dapat dilakukan

dengan mengimplementasikan action listener, seperti on click listener, on long

click listener, on focus change listener, on key listener, on touch listener, dan on

menu item click listener.

3. Untuk model implementasi listener dapat dilakukan dengan beberapa metode

yaitu :

a) Dengan menggunakan inner class anonim

b) Dengan menggunakan inner class bernama