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
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
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
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.
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
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.
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);
//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">
<!-- 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.
9. Hasil dari program di atas adalah sebagai berikut :
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;
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"
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>
<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.
9. Hasil dari program di atas adalah sebagai berikut :
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 :
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");
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;
} // 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.
7. Hasil dari program di atas adalah sebagai berikut :
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 :
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;
} }
@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" >
<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 :
Praktik 4
1. Membuat project baru masih tentang event Menu dengan nama J5–
OptionContextMenu dengan menggunakan program android studio.
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;
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);
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.
14. Hasil dari program di atas adalah sebagai berikut :
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