Complete
Complete
Complete
Complete
A Practical Reference
Marlisa S | 7409040029
Kata Pengantar
Assalamualaikum Wr. Wb.
Segala puji syukur kami ucapkan atas ke hadirat Tuhan Yang Maha Esa yang masih melimpahkan rahmat dan karunianya kepada kita semua sehingga Modul Android ini dapat terselesaikan dengan baik. Modul ini dimaksudkan dalam rangka pemenuhan penugasan perkuliahan mata kuliah Pemrograman Lanjut-Android.
Kami mengucapkan terima kasih sebanyak-banyaknya kepada pihak-pihak yang telah membantu kami selama proses penyusunan modul ini berlangsung, sehingga modul ini dapat terselesaikan dengan baik dan tepat waktu sesuai dengan waktu yang ditentukan. Penulis menyadari bahwa masih banyak kekurangan dan ketidaksempurnaan dari modul ini. Oleh karena itu sekiranya kami mengharapkan kritik dan saran yang bersifat membangun demi terwujudnya kesempurnaan dari modul ini.
Akhir kata dalam penyusunan modul ini kami sebagai penulis berharap semoga modul ini nantinya dapat bermanfaat bagi penulis sendiri maupun untuk pembaca pada umumnya.
Surabaya, 23 Juli 2011
Daftar isi
Kata Pengantar ... 2
Pendahuluan ... 4
User Interface Using XML Layouts ... 14
Basic Widgets ... 23
SelectionWidgets ... 30
Date,Time,Tabs ... 41
Drawer ... 45
Hard & Soft Keyboard ... 49
Menus ... 63 Intents ... 77 Preferences ... 86 File ... 98 Fonts ... 103 SQL Database ... 106
Location Based Services ... 113
PENDAHULUAN
Android adalah sistem operasi untuk telepon seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para pengembang buat menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia.
Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar
terbuka perangkat seluler. Di dunia ini terdapat dua jenis
distributor sistem operasi Android. Pertama yang mendapat dukungan penuh dari Google atau Google Mail Services (GMS) dan kedua adalah yang benar–benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open Handset Distribution (OHD).
Android versi 1.1
Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email.
Android versi 1.5 (Cupcake)
Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Penambahan fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem.
Android versi 1.6 (Donut)
Donut (versi 1.6) dirilis pada September dengan
sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan; CDMA / EVDO, 802.1x, VPN, Gestures, dan
Text-to-speech engine; kemampuan dial kontak; teknologi text to change
speech (tidak tersedia pada semua ponsel; pengadaan resolusi VWGA.
Android versi 2.0/2.1 (Eclair)
3 Desember 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1 (Eclair), perubahan yang dilakukan adalah pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI dengan browser baru dan dukungan HTML5, daftar kontak yang
baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan
Bluetooth 2.1.
Aplikasi terkenal yang diubah ke dalam sistem operasi
Android adalah Shazam, Backgrounds, dan WeatherBug. Sistem operasi Android dalam situs Internet juga dianggap penting untuk menciptakan aplikasi Android asli, contohnya oleh MySpace dan Facebook.
Android versi 2.2 (Froyo: Frozen Yoghurt)
Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market.
Android versi 2.3 (Gingerbread)
Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-perubahan umum yang didapat dari Android versi ini antara lain peningkatan kemampuan permainan (gaming), peningkatan fungsi copy paste, layar antar muka (User Interface) didesain ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.
Interface pada Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi prosesor dan juga akselerasi perangkat keras (hardware) untuk grafis.
Android versi 3.1
Android 3.1 adalah merilis platform tambahan yang banyak menyempurnakan fitur yang diperkenalkan pada Android 3.0. Ini didasarkan pada UI tablet-dioptimalkan sama dan fitur yang ditawarkan di Android 3.0 dan menambahkan beberapa kemampuan
baru bagi pengguna dan pengembang. Fitur-fitur yang ditambahkan
antara lain Open Accessory API untuk interaksi yang kaya dengan peripherals, USB host API, Input from mice, joysticks, and gamepads, Resizable Home screen widgets, MTP API for integrating with external cameras, RTP API.
Gb 1.1 Tampilan home screen pada Android emulator
Download dan Instalasi
Sebelum memulai Android, sebaiknya komputer telah terinstal Java Development Kit (JDK) sebagai pendukung.
Jika telah terinstal, yang perlu disiapkan adalah instalasi eclipse-java-galileo-SR2-win32, ADT-0.9.9 serta android-sdk-windows.
Selesai mendownload, saatnya instalasi. Letakan hasil download tersebut pada satu folder eclipse. Pastikan features dan plugins pada ADT digandakan ke dalam masing – masing features dan plugins pada folder eclipse.
Gb 1.2 Folder – folder android
Kemudian jalankan aplikasi eclipse, akan ada tampilan awal muncul seperti ini
Sekali eclipse dijalankan terdapat default penyimpanan workspace yang akan digunakan unuk menyimpan project – project. Kita dapat menggantinya dengan menekan tombol browse.
Disarankan untuk melakukan pengecekan folder penyimpanan project, supaya menghindari kesalahan folder yang dilacak. Jadi kejelasan tempat penyimpanan project kita, akan sangat membantu dalam pencarian. Setelah memastikan folder tersebut, tekan OK. Dalam poin ini, download dan aplikasi eclipse telah selesai namun sebelum memulai project baru, terdapat instalasi yang harus kita lakukan, yaitu instalasi SDK.
Instalasi SDK
Setelah masuk ke dalam aplikasi eclipse, pilih Windows – Android SDK and AVD Manager.
Terdapat tampilan seperti berikut, klik New untuk membuat AVD (Android Virtual Devices).
Kemudian isikan nama, target tipe android yang akan digunakan saat melaunch emulator. Ukuran AVD dengan standard 1024 MB. Setelah ok, klik create AVD.
Setelah selesai, akan ada tampilan gambar berikut, kemudian klik start untuk memulainya dan launch.
Membuat Project Android Baru
Buat project baru, klik File – New – Android Project , seperti pada gambar
Project name – nama dari project yang akan dibuat.
Package name – nama package. Nama tersebut akan
digunakan dalam Java files. Ketentuannya menggunakan nama domain company, seperti com.april dsb.
Activity name – nama activity dari aplikasi android. In
Android, think of an activity as a screen containing some actions, hence the name "activity"
Application name – nama yang ditampilkan dalam User
Open the HelloAndroid.java file, located inside HelloAndroid > src > com.example.helloandroid)
package com.example.helloandroid; import android.app.Activity; import android.os.Bundle;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */ @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Kumpulan source code Code java untuk activity pada UI Generated kode java file untuk manajeme n resource source file. Kumpulan resources aplikasi non code Images Layout activity File generated-build file yang digunakan oleh eclipse dan ADT plugins, sehingga tidak dimodifikasi pusat pengaturan aplikasi yang dibuat.
} }
Bagian paling dasar dari aplikasi android adalah activity.
Sebuah activity menampilkan UI dari aplikasi android,
berupa widgets seperti buttons, labels, text boxes, dll.
Ketika activity dijalankan. sebuah onCreate() yang
merupakan event handler dipanggil.
The activity loads its UI from the XML file named main.xml.
This is represented by the constant named R.layout.main (generated automatically by the Eclipse as you save your project).
If you examine the main.xml file located in the res/layout
folder
Secara default, main.xml berisi scipt ini:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/re s/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
User Interface Using
XML Layouts
Tampilan User Interface (UI) dari aplikasi eclipse mengandung beberapa widget seperti buttons, labels, textbox dan lain - lain. Biasanya mendefinisikan UI menggunakan sebuah XML file (misalnya, main.xml yang berada di lokasi res/layout folder).
contoh sederhana penggunaan file xml Praktikum 1.1
Penggunaan widget button
>> Layout activity pada file main.xml, ubah seperti berikut ini: <?xml version="1.0"encoding="utf-8"?> <Button android:text="" android:id="@+id/Button01" android:layout_width="fill_par ent" android:layout_height="fill_pa rent"> </Button>
# fill_parent merupakan tampilan layout penuh. Jika width tampilan button maka memanjang, jika height tampilan button melebar. Kedua layout height dan weight merupakan fill_parent sehingga menjadi seperti gambar di samping #
source code java package com.april; import android.app.Activity; import java.util.Date; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;
super.onCreate(savedInstanceState); setContentView(R.layout.main);
btn= (Button)findViewById(R.id.Button01); btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) { updateTime(); }
}); }
private void updateTime(){
btn.setText(new Date().toString());
} }
# Deklarasi variabel btn dari widget Button.
# EditText (atau textBox) widget merupakan extension dari TextView yang mengijinkan get dan set text untuk update.
# findViewById merupakan sebuah fungsi untuk mencari resource widget menggunakan Id pada layout main.xml.
# R.id.Button01 merupakan cara untuk mengakses resource yang
memiliki id Button01 pada Layout yang secara default dialiaskan
sebagai R.
# updateTime() memanggil fungsi tersebut dengan memanggil setText
untuk tanggal berupa string ke button dengan nama variabel btn.
Views dan Views Group
View merupakan representasi dari komponen User Interface. View berada di area screen dan responsible dengan drawing serta event handling.
Beberapa view dapat dikelompokan menjadi viewgroups. Contoh dari viewgroups antara lain frame layout, linear layout dll. Sebuah viewgroup berasal dari dasar class android.view.viewgroup.
Android supports the following ViewGroups: „ LinearLayout „ AbsoluteLayout „ TableLayout „ RelativeLayout „ FrameLayout „ ScrollView
Penggunaan Linear Layout
Linear Layout merupakan salah satu bentuk Layout pada Android. Dengan menggunakan dasar Layout ini maka dasar aplikasi kita akan bersifat statis/fixed sehingga tidak bisa digerakkan/scroll.
Komponen untuk menerima inputan, maka yang digunakan adalah
EditText. Sebenarnya ada cara lain namun untuk dasar kita akan menggunakan EditText. Adapun script untuk membuatnya adalah sebagai berikut:
Karena penempatan layout pada XML sifatnya tersusun dari atas ke bawah, maka letakkan dua buah EditText pada Linear Layout layer kedua baris pertama dan dua buah Button pada Linear Layout
Berikutnya anda dapat menjalankan program xml sederhana tersebut dengan hasil sebagai berikut:
Tabel Layout yang mengatur peletakan child views element dalam baris dan kolom, namun tidak ditampilkan garis kolom dan barisnya.
Komponen TextView sendiri merupakan komponen yang akan menampilkan text. Untuk contoh kali ini, teks telah diinputkan langsnug pada main.xml. Berikut contoh untuk menghasilkan tulisan pada baris pertama:
Untuk baris kedua, sebagai berikut:
# android:gravity untuk mengatur letak textview tersebut rata kanan. Untuk padding besar kecilnya lapisan textview yang dibuat.
Pada script main.xml, susunan komponennya seperti ini: <?xml version="1.0"encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="*"> <TableRow>
<TextView android:text= "open .."
android:padding= "3dip"/>
<TextView android:text= "ctrl-o"
android:gravity="right"
android:padding="3dip"/>
</TableRow> <TableRow>
android:gravity="right"
android:padding="3dip"/>
</TableRow> </TableLayout>
Jika dijalankan pada android project, hasilnya sebagai berikut:
Penggunaan Relative Layout
Relative Layout merupakan peletakan layout child dengan posisi relatif dari parent / siblings elements (penggunaan id @). Susunan script main.xml dengan menggunakan relative layout, sebagai berikut:
# Penggunaan relative layout dengan memanggil id (@nama_id) dari widget yang akan diatur.
# EditText yang digunakan untuk meanpung teks yang diketik, diatur letaknya dengan penggunaan
android:layout_below="@id/TextView01”. Berarti TextView dipanggil
untuk diletakan di atas EditText.
# id Button01 memiliki android:layout_alignParentRight="true”, berarti Button01 yang berupa OK, memiliki aturan rata kanan dan berada di bawah EditText, berdasarkan
android:layout_below="@id/EditText01".Diberi jarak 10px untuk
widget yang akan diletakan di sebelah kiri Button OK.
# id Button02 yang berupa Button Cancel, memanggil id Button01 untuk peletakan di sebelah kiri.
android:layout_toLeftOf="@id/Button01".
Hasil dari code main.xml adalah sebagai berikut
Penggunaan Absolut Layout
Absolute Layout memungkinkan kita untuk menentukan posisi X dan Y dari childrennya.
# 120px, pengukurannya pada sumbu x seperti pada gambar, diukur dari sebelah kiri.
# ukuran 32px berada pada sumbu y dengan pengukuran mulai dari atas.
Penggunaan Single Button
Dalam bab ini, kita mulai menggunakan secara rinci script MainActivity.java.
# android:hint="First Last Name" merupakan teks (petunjuk) yang
transparan pada EditTeks jika dimasukan suatu teks, hint tersebut hilang.
# onClick merupakan suatu event yang terjadi setelah Button diklik. # TextView dengan nama txtUserName melakukan pengesetan teks melalui getText().toString(); dengan menampilkan teksnya. # Jika string yang dimasukan di editText dicocokan pada textView merupakan April Fatmasari, maka teks pada TextView diset menjadi ("OK, please wait .. ").
# Toast merupakan tampilan suatu pesan dengan cepat, berupa "Bienvenido".
>> Jika di-run, maka tampilan pada emulatornya adalah
Contoh script main.xml yang menggunakan CheckBox, seperti berikut:
# Pada fungsi onClick, mengandung maksud, jika ChekBox01 berupa ckCream dipilih, maka string yang ditampilkan adalah “ cream”. # Jika CheckBox berupa Sugar dipilih, maka ditampung string berupa “ sugar”.
#Kemudian string tesebut ditampilkan dalam suatu pesan cepat melaui Toast.
Hasil yang ditampilkan pada emulator
Penggunaan RadioButon dan CheckButton
User Interfae menggunakan dapat menggunakan
RadioButton dan CheckButton secara bersamaan. Untuk contoh di bawah ini, digunakan kumpulan RadioButton yaitu RadioGrup dengan 2 buah CheckButton.
Penggunaan RadioGrup hanya bisa memilih satu saja sedangkan jika tidak digrup dapat memilih lebih dari satu.
# Toast untuk menampilkan pesan singkat seperti pada gambar. Pesan – pesan tersebut akan tampil jika memilih salah satu radio button atau checkbutton.
Pemilihan CheckButton dan CheckBox
Selection
Widgets
RadioButton dan CheckButton cocok untuk digunakan suatu kumpulan pilihan yang tidak banyak. Jika pilihan sangat banyak dapat
menggunakan widget berupa listbox, combobox, drop-down list dan
sebagainya.
Android memiliki framework data adapter yang
memberikan interface umum untuk pilihan baik berupa static array maupun isi database.
Selection views – merupakan widget untuk menampilkan daftar pilihan yang menggunakan adapter sebagai penyuplai pilihan. Penggunaan Simple List
source code java
# setListAdapter digunakan untuk penggunaan semacam arraylist yang berisi array items bertipe String.
# Pada fungsi onListItemClick untuk menampilkan pesan saat diklik pada position array items.
Penggunaan spinner sama dengan drop down selector. Fungsi spinner dan ListView hampir sama namun ListView memiliki ruang yang lebih kecil.
source code java
#ArrayAdapter pada spinner digunakan sebagai tampungan kalimat string. Agar layout pilihan spinner dapat terlihat naik, turun
pengaturannya ada di dalam setDropDownViewResource, pemanggilannya melalui spin.
#Pada gambar terlihat pilihan kita adalah silly dengan checkbutton yang kita pilih berwarna hijau, penjelasan tersebut berdasarkan fungsi onItemSelected. Tulisan yang muncul pada textview merah berdasar salah satu posisi array yang kita pilih dalam array item, misal: “silly”. Penggunaan GridView
GridView merupakan Viewgroup yang menampilkan item – item dalam dua dimensi grid yang dapat discroll.
source code java
#GridView juga menampung string dalam bentuk array sehingga menggunakan ArrayAdapter. Fungsi onItemClick merupakan pilihan kata yang ditampilkan TextView seperti pada gambar.
Selection Widget 2
Penggunaan AutoCompleteTextView
Ketika user mengetikkan kata, teks berfungsi sebagai filter prefix kemudian membandingkan input teks dengan daftar kata yang paling mendekati. Daftar pilihan ditampilkan seperti Spinner.
Penggunaan Galeri Widget
Galeri widget ini dapat ditampilkan dengan menggeser ke kanan maupun ke kiri
Date,
Time,
Tabs
# Widgets DatePicker dan TimePicker terdapat dalam android untuk membantu user memasukan tanggal dan waktu.
#Widgets datePicker dan dialogs DatePickerDialog untuk mengatur tanggal yang dipilih mulai dari tahun, bulan dan hari.
XML layout
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background = "#FFCC00" > <EditText android:id="@+id/Customer"
android:hint="Enter your name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textCapWords" android:nextFocusDown="@+id/Phone"> </EditText> <EditText android:id="@+id/Phone"
android:hint="Enter your phone number"
android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="phone"> </EditText> <RadioGroup android:id="@+id/Flavour" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <RadioButton android:id="@+id/nonflav" android:text="None" android:textColor = "#003300" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true"> </RadioButton> <RadioButton android:id="@+id/cheesflav" android:text="Cheese" android:textColor = "#003300" android:layout_width="wrap_content" android:layout_height="wrap_content"> </RadioButton> <RadioButton android:id="@+id/doubleflav"
android:text="Double Cheese" android:textColor = "#003300"
android:layout_width="wrap_content" android:layout_height="wrap_content"> </RadioButton> </RadioGroup> <RadioGroup android:id="@+id/Shape" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/round" android:text="Round" android:textColor = "#003300" android:layout_width="wrap_content" android:layout_height="wrap_content"> </RadioButton> <RadioButton android:id="@+id/square" android:text="Square" android:textColor = "#003300" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true"> </RadioButton> </RadioGroup> <CheckBox android:id="@+id/Pepperoni" android:text="Pepperoni" android:textColor = "#003300" android:layout_width="wrap_content" android:layout_height="wrap_content"> </CheckBox> <CheckBox android:id="@+id/Mushroom" android:text="Mushroom" android:textColor = "#003300" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true"> </CheckBox> <CheckBox android:id="@+id/Veggie" android:text="Veggies" android:textColor = "#003300" android:layout_width="wrap_content"
android:text="Chicken" android:textColor = "#003300" android:layout_width="wrap_content" android:layout_height="wrap_content"> </CheckBox> <Button android:id="@+id/OK"
android:text="SMS - Place your order"
android:textColor = "#CC0000" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </LinearLayout> Android Activity package assignment.pizza; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.RadioButton; import android.widget.Toast;
public class pizzamania extends Activity { /** Called when the activity is first created. */
EditText name; EditText phone; Button OK; RadioButton none; RadioButton cheese; RadioButton doublecheese; RadioButton round; RadioButton square; CheckBox pepper; CheckBox mush; CheckBox veggie; CheckBox chick; @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.main);
phone = (EditText)findViewById(R.id.Phone); OK = (Button)findViewById(R.id.OK);
none = (RadioButton)findViewById(R.id.nonflav); cheese = (RadioButton)findViewById(R.id.cheesflav); doublecheese = (RadioButton)findViewById(R.id.doubleflav); round = (RadioButton)findViewById(R.id.round);
square = (RadioButton)findViewById(R.id.square); pepper = (CheckBox)findViewById(R.id.Pepperoni); mush = (CheckBox)findViewById(R.id.Mushroom); veggie = (CheckBox)findViewById(R.id.Veggie); chick = (CheckBox)findViewById(R.id.Chicken);
OK.setOnClickListener(new OnClickListener() {
public void onClick(View v) { String info = "";
if (name.length()== 0 || phone.length()==0){
Toast.makeText(getApplicationContext(), "Name and Phone are require", Toast.LENGTH_SHORT).show();
} else{
info = info + "Customer\t : " + name.getText().toString()+ ", " +
phone.getText().toString();
info += "\nFlavour\t\t :"; if(cheese.isChecked()){ info += " Cheese"; }
else if(doublecheese.isChecked()){ info += " Double Cheese"; }
else{
info += " Original"; }
info += "\nShape\t\t\t :"; if(square.isChecked()){ info += " Square"; } else{ info += " Round"; } info += "\nTopping\t\t : \n";
if (mush.isChecked()){ info += " - Mushroom\n"; } if (veggie.isChecked()){ info += " - Veggies\n"; } if (chick.isChecked()){ info += " - Chicken\n"; }
Toast.makeText(getApplicationContext(), info, Toast.LENGTH_SHORT).show(); }
else {
Toast.makeText(getApplicationContext(), "Choose Topping First!", Toast.LENGTH_SHORT).show();
} } } }); } }
Menus 1
Menu mengekspos fungsi aplikasi tanpa mengkonsumsi ruang 'banyak' tampilan
Android menyediakan dua jenis menu dikenal sebagai: Pilihan menu dan menu konteks.
1. Menu pilihan dipicu dengan menekan tombol Menu pada perangkat keras, sementara
2. Menu konteks adalah dibesarkan oleh tekan dan tahan pada widget yang berhubungan dengan menu.
Context Menu XML
<LinearLayoutandroid:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical">
<EditTextandroid:layout_height="wrap_content" android:id="@+id/etMessage1" android:text="Hello world" android:layout_width="fill_parent" android:layout_margin="5dp"/> <EditTextandroid:layout_height="wrap_content"
android:text="Hello mundo" android:layout_width="fill_parent" android:layout_margin="5dp"/> <TextViewandroid:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Press the Menu key, or \nLong-press text-boxes" android:layout_gravity="center"/> </LinearLayout> Listing Program import android.app.Activity; 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.view.ContextMenu.ContextMenuInfo; import android.widget.EditText;
public class Demo extends Activity { EditText etMessage1; EditText etMessage2;
Integer[] arrayPointSize= {10, 20, 30, 40, 50}; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main);
etMessage1= (EditText)findViewById(R.id.etMessage1); etMessage2= (EditText)findViewById(R.id.etMessage2); registerForContextMenu(etMessage1);
registerForContextMenu(etMessage2); }
public boolean onCreateOptionsMenu(Menu menu) { populateMyFirstMenu(menu);
return super.onCreateOptionsMenu(menu); }
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
{
populateMySecondMenu(menu);
}
}
private void populateMyFirstMenu(Menu menu) { int groupId= 0; int order= 0; 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"); }
private void populateMySecondMenu(Menu menu) {
int groupId= 0; int order= 0; menu.add(groupId, 9, 1, "Bold"); menu.add(groupId, 10, 2, "Italic"); menu.add(groupId, 11, 3, "Normal"); }
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) { int newPointSize= arrayPointSize[menuItemId-1]; etMessage1.setTextSize(newPointSize); etMessage2.setTextSize(newPointSize); } else {
// either change color on text1 or style on text2
if(menuItemId== 6)
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; }
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
} Output
Option/Context Menu XML <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <EditText android:id="@+id/msg1" android:text="Hello World" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin = "5dp"> </EditText> <EditText android:id="@+id/msg2" android:text="Hola Mundo" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_margin = "5dp"> </EditText>
<TextView
android:text="Press the MENU key, or \nHold text-boxes" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"/> </LinearLayout> Listing Program import android.app.Activity; 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.SubMenu; import android.view.View; import android.view.ContextMenu.ContextMenuInfo; import android.widget.EditText;
public class Opt2 extends Activity { EditText msg1;
EditText msg2;
Integer[] arrayPointSize = {10, 20, 30, 40, 50};
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); msg1 = (EditText)findViewById(R.id.msg1); msg2 = (EditText)findViewById(R.id.msg2); registerForContextMenu(msg1); registerForContextMenu(msg2); } @Override
public boolean onCreateOptionsMenu(Menu menu){ populateMyFirstMenu(menu);
return super.onCreateOptionsMenu(menu); }
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){ super.onCreateContextMenu(menu, v, menuInfo); if (v.getId() == msg1.getId()) populateMyFirstMenu(menu); if (v.getId() == msg2.getId()) populateMySecondMenu(menu); }
private void populateMyFirstMenu(Menu menu) { int groupId = 0;
MenuItem item1 = menu.add(groupId, 1, 1, "10 points"); MenuItem item2 = menu.add(groupId, 2, 2, "20 points"); MenuItem item3 = menu.add(groupId, 3, 3, "30 points"); MenuItem item4 = menu.add(groupId, 4, 4, "40 points"); MenuItem item6 = menu.add(groupId, 6, 8, "Red text"); MenuItem item7 = menu.add(groupId, 7, 7, "Green text");
MenuItem item8 = menu.add(groupId, 8, 6, "Blue text"); item1.setIcon(R.drawable.icon); item2.setIcon(R.drawable.icon); item3.setIcon(R.drawable.icon); item4.setIcon(R.drawable.icon); item1.setShortcut('1', '1'); item2.setShortcut('2', '2');
int smItemId = 5; int smOrder = 5; SubMenu mySubMenu =
menu.addSubMenu(smGroupId, smItemId, smOrder, "Sub-Menu"); mySubMenu.setHeaderIcon(R.drawable.icon); mySubMenu.setIcon(R.drawable.icon);
MenuItem sub1 = mySubMenu.add(smGroupId, 5, 1, "Sub Menu 5-1");
MenuItem sub2 = mySubMenu.add(smGroupId, 5, 2, "Sub Menu 5-2");
MenuItem sub3 = mySubMenu.add(smGroupId, 5, 3, "Sub Menu 5-3");
}
private void populateMySecondMenu(ContextMenu menu) { int groupId = 0; 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(); String strMsg2 = msg2.getText().toString(); if(menuItemId <= 5) { int newPointSize= arrayPointSize[menuItemId-1]; msg1.setTextSize(newPointSize); msg2.setTextSize(newPointSize); } else if (menuItemId == 5)
msg1.setText("You have selected :\n" + item.getTitle()+ " Id : " + menuItemId); else if(menuItemId== 6) msg1.setTextColor(0xffff0000); else if(menuItemId== 7) msg1.setTextColor(0xff00ff00); else if(menuItemId== 8)
msg1.setTextColor(0xff0000ff); else if(menuItemId== 9) msg2.setText(beautify(strMsg2, "BOLD")); else if(menuItemId== 10) msg2.setText(beautify(strMsg2, "ITALIC")); else if(menuItemId== 11) msg2.setText(beautify(strMsg2, "NORMAL")); return false; }
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; Output
Menus 2
Another App Using Menus that include Icons & Text XML
android:layout_height="fill_parent" android:orientation="vertical" android:stretchColumns ="1,2,3" xmlns:android="http://schemas.android.com/apk/res/android" > <TableRow android:id="@+id/tableRow1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/text0" android:layout_width="fill_parent" android:layout_height="100px" android:background="#ff006666" android:text="TextView" android:layout_span="3" > </TextView> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <RelativeLayout android:id="@+id/myRelativeLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" > <EditText android:id="@+id/text1" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:hint="Type something..."
android:textSize="18sp" android:layout_alignTop="@+id/myRadioGroup" android:layout_alignBottom="@+id/myRadioGroup" android:layout_toRightOf="@+id/myRadioGroup" android:padding="10px" android:paddingLeft="20px"> </EditText> <RadioGroup android:id="@+id/myRadioGroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"
android:layout_alignParentTop="true" android:layout_alignParentLeft="true" > <RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio1"> </RadioButton> <RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Radio2"dx> </RadioButton> </RadioGroup> </RelativeLayout> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ffff9900" android:orientation="vertical" android:layout_weight="2" > <ListView android:id="@+id/list1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:isScrollContainer="true"> </ListView> </TableRow> </TableLayout> Listing Program import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.view.View; import android.view.ContextMenu.ContextMenuInfo; import android.widget.ArrayAdapter;
public class Opt3 extends Activity { TextView text0; EditText text1; RadioButton radio1; RadioButton radio2; ListView list1; ArrayList<String> arrOptions; ArrayAdapter<String> adaOptions;
final int PICK1 = Menu.FIRST; final int PICK2 = Menu.FIRST + 1; final int PICK3 = Menu.FIRST + 2; final int PICK4 = Menu.FIRST + 3; @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text0 = (TextView)findViewById(R.id.text0); text1 = (EditText)findViewById(R.id.text1); radio1 =(RadioButton)findViewById(R.id.radio1); radio2 =(RadioButton)findViewById(R.id.radio2); list1 = (ListView)findViewById(R.id.list1); arrOptions = new ArrayList<String>(); adaOptions = new ArrayAdapter<String>( this, R.layout.main1, arrOptions); list1.setAdapter(adaOptions);
registerForContextMenu(list1); registerForContextMenu(text1); }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuItem item1 = menu.add(0, PICK1, Menu.NONE, "Option UNO");
MenuItem item2 = menu.add(0, PICK2, Menu.NONE, "Option DOS");
MenuItem item3 = menu.add(0, PICK3, Menu.NONE, "Option TRES");
MenuItem item4 = menu.add(1, PICK4, Menu.NONE, "Option CUATRO"); //set icons item1.setIcon(R.drawable.icon); item2.setIcon(R.drawable.icon); item3.setIcon(R.drawable.icon); item4.setIcon(R.drawable.icon);
item1.setShortcut('1', 'u'); item2.setShortcut('2', 'd'); item3.setShortcut('3', 't'); item4.setShortcut('4', 'c');
SubMenu mySubMenu5 = menu.addSubMenu(0, 0, Menu.NONE, "Sub-Menu-CINCO");
mySubMenu5.setHeaderIcon(R.drawable.icon); mySubMenu5.setIcon(R.drawable.icon);
MenuItem sub51 = mySubMenu5.add(0,0,Menu.NONE,"Sub Menu 5-1");
MenuItem sub52 = mySubMenu5.add(0,0,Menu.NONE,"Sub Menu 5-2");
MenuItem sub53 = mySubMenu5.add(0,0,Menu.NONE,"Sub Menu 5-3");
return true; }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
try {
super.onOptionsItemSelected(item); int itemID = item.getItemId();
//title to display is taken from current menu item
String msg= item.getTitle().toString();
//add selection to historical array and show in listview
arrOptions.add(msg);
adaOptions.notifyDataSetChanged(); //values in the green TextView box include:
msg += "\n" + "radio1: " + Boolean.toString(radio1.isChecked());
msg += "\n" + "radio2: " + Boolean.toString(radio2.isChecked());
msg += "\n" + "Text: " + text1.getText();
text0.setText("Menu: " + msg); } catch (Exception e) { text0.setText(e.getMessage()); } return false; }
public void onCreateContextMenu(ContextMenu menu, View v,
menu.add(0, PICK1, Menu.NONE, "Option-1 UNO special"); menu.add(0, PICK2, Menu.NONE, "Option-2 DOS special"); }
@Override
public boolean onContextItemSelected(MenuItem item) { super.onContextItemSelected(item); String msg = item.getTitle().toString(); text0.setText(msg); arrOptions.add(msg); adaOptions.notifyDataSetChanged(); return false; } } Output
Intents
Android Activity
Sebuah aplikasi Android dapat mencakup sejumlah activity : • Suatu activity menggunakan metode setContentView (...) untuk mengekspos (biasanya) UI tunggal dari mana sejumlah tindakan bisa dilakukan.
• Kegiatan yang independen satu sama lain, namun mereka biasanya bekerja sama pertukaran data dan tindakan.
• Biasanya, salah satu kegiatan yang ditetapkan sebagai yang pertama (utama) yang harus disajikan kepada pengguna saat aplikasi
diluncurkan.
• Pindah dari satu aktivitas ke aktivitas lainnya dilakukan dengan menanyakan kegiatan saat ini untuk menjalankan suatu niat. • Kegiatan berinteraksi satu sama lain dalam mode asynchronous.
Argumen utama dari sebuah Intent adalah:
1. Action built-in untuk dilakukan, seperti ACTION_VIEW,
ACTION_EDIT, ACTION_MAIN, ... atau yang dibuat pengguna-aktivitas 2. Data data primer untuk beroperasi pada, seperti nomor telepon untuk dipanggil (dinyatakan sebagai Uri a).
Complete Example XML <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/label1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ff0000cc"
android:text="This is Activity1"
android:textStyle="bold" android:textSize="20sp" /> <EditText android:id="@+id/text1" android:layout_width="fill_parent" android:layout_height="54px" android:text="tel:555-1234"
android:textSize="18sp" /> <Button
android:id="@+id/btnCallActivity2"
android:layout_width="149px"
android:layout_height="wrap_content"
android:text="Make Phone Call"
android:textStyle="bold"/> </LinearLayout> Listing Program import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class intents1 extends Activity {
TextView label1; EditText text1; Button btnCallActivity2; @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.main); try {
setContentView(R.layout.main);
label1 = (TextView)findViewById(R.id.label1); text1 = (EditText)findViewById(R.id.text1);
btnCallActivity2 = (Button)findViewById(R.id.btnCallActivity2); btnCallActivity2.setOnClickListener(new ClickHandler()); }
catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show();
} }
private class ClickHandler implements OnClickListener { public void onClick(View v) {
startActivity(myActivity2); }
catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_LONG).show(); } } } } Output Intents 2 Android Intents
Kegiatan biasanya menyajikan antarmuka pengguna tunggal visual dari mana nomor dari
tindakan dapat dilakukan.
Pindah dari satu aktivitas ke aktivitas lainnya dilakukan dengan memiliki aktivitas saat memulai yang berikutnya melalui maksud disebut.
Android Bundles
Bahasa pemrograman yang paling mendukung gagasan metode panggilan-IPC dengan argumen yang mengalir birectionally dari pemanggil dengan metode dipanggil.
menggunakan objek Intent.
Khususnya di Android, penelepon tidak berhenti menunggu kegiatan dipanggil untuk kembali hasil. Sebaliknya sebuah listeningmethod [onActivityResult (...)] harus digunakan.
Android Bundles
Biasanya ekspresi IPC daftar parameter aktual, dan daftar parameter formal digunakan untuk ditunjuk tanda tangan dari argumen particpating, dan data ini disuplai.
Alih-alih menggunakan daftar parameter formal yang tradisional /
aktual, Android bergantung pada konsep Intents untuk mendirikan
Inter-processcommunication. Maksud opsional membawa daftar nama yang sebenarnya atau bundel untuk pertukaran data.
Preferences
Android menyediakan empat mekanisme berikut untuk menyimpan dan mengambil data:
1. preferensi, 2. file,
3. Database, dan 4. Jaringan.
Preferences merupakan mekanisme ringan Android untuk menyimpan dan mengambil pasangan kunci-nilai tipe data primitif (Peta juga disebut, dan Array asosiatif.
Biasanya digunakan untuk menyimpan informasi negara dan data bersama antara kegiatan beberapa aplikasi.
Pada setiap value> entri <key kuncinya adalah string dan nilai harus menjadi tipe data primitif.
Preferensi mirip dengan Kumpulan namun mereka yang gigih sementara Bundel tidak.
Using Preferences API calls
Anda memiliki pilihan untuk memilih API tiga Preferensi suatu: 1. getPreferences () dari dalam Kegiatan Anda, untuk mengakses preferensi aktivitas spesifik
2. getSharedPreferences () dari dalam Aktivitas Anda untuk mengakses aplikasi-tingkat preferensi
3. getDefaultSharedPreferences (), pada PreferencesManager, untuk mendapatkan preferensi bersama yang bekerja di konser dengan kerangka preferensi keseluruhan Android
Example 2 XML
<LinearLayoutandroid:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinLayout1Vertical"
android:orientation="vertical">
<LinearLayoutandroid:layout_height="wrap_content" android:id="@+id/LinLayout2Horizontal" android:layout_width="fill_parent"> <Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/btnPrefSimple" android:text="Pref Simple UI"/> <Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/btnPrefFancy" android:text="Pref Fancy UI"/> </LinearLayout>
<TextViewandroid:layout_height="wrap_content" android:layout_width="fill_parent" android:background="#ff006666" android:id="@+id/txtCaption1" android:text="This is some sample text"/> </LinearLayout>
Listing Program
import android.app.Activity; import android.os.Bundle;
import java.util.Date; import android.content.SharedPreferences; import android.graphics.Color; import android.graphics.Typeface; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;
public class tujuhduapreferen extends Activity implements OnClickListener {
Button btnSimplePref; Button btnFancyPref; TextView txtCaption1;
Boolean fancyPrefChosen = false; View myLayout1Vertical;
final int mode = Activity.MODE_PRIVATE; final String MYPREFS = "MyPreferences_001"; SharedPreferences mySharedPreferences; SharedPreferences.Editor myEditor; @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myLayout1Vertical = (View)findViewById(R.id.LinLayout1Vertical); txtCaption1 = (TextView) findViewById(R.id.txtCaption1); txtCaption1.setText("This is a sample line \n“"
+ "suggesting the way the UI looks \n" + "after you choose your preference"); mySharedPreferences = getSharedPreferences(MYPREFS, 0); myEditor = mySharedPreferences.edit();
if (mySharedPreferences != null
&& mySharedPreferences.contains("backColor")) {
applySavedPreferences(); }
else {
Toast.makeText(getApplicationContext(),
"No Preferences found", 1).show(); }
btnSimplePref = (Button) findViewById(R.id.btnPrefSimple); btnSimplePref.setOnClickListener(this);
public void onClick(View v) {
myEditor.clear();
if (v.getId() == btnSimplePref.getId()) {
myEditor.putInt("backColor", Color.BLACK);// black background
myEditor.putInt("textSize", 12); // humble small font
} else {
myEditor.putInt("backColor", Color.BLUE); // fancy blue
myEditor.putInt("textSize", 20); // fancy big
myEditor.putString("textStyle", "bold"); // fancy bold
myEditor.putInt("layoutColor", Color.GREEN);//fancy gree
}
myEditor.commit(); applySavedPreferences(); }
protected void onPause() {
myEditor.putString("DateLastExecution", new Date().toLocaleString());
myEditor.commit(); super.onPause(); }
public void applySavedPreferences() {
// extract the <key/value> pairs, use default param for missing data
int backColor = mySharedPreferences.getInt("backColor",Color.BLACK); int textSize = mySharedPreferences.getInt("textSize", 12);
String texStyle = mySharedPreferences.getString("textStyle", "normal"); int layoutColor = mySharedPreferences.getInt("layoutColor",Color.DKGRAY); String msg = "color " + backColor + "\n"+ "size " + textSize + "\n"
+ "style " + textStyle;Toast.makeText(getApplicationContext(), msg, 1).show();
txtCaption1.setBackgroundColor(backColor);txtCaption1.setTextSize(textSize);i f (textStyle.compareTo("normal")==0)
{
txtCaption1.setTypeface(Typeface.SERIF,Typeface.NORMAL); }
else {
txtCaption1.setTypeface(Typeface.SERIF,Typeface.BOLD); }
myLayout1Vertical.setBackgroundColor(layoutColor);}} Output
Example 3
XML
<LinearLayoutandroid:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinLayout1"
android:background="#ff0000ff" android:orientation="vertical"> <TextViewandroid:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/captionBox"
android:text="SharePreferences Container: Customer Data" android:layout_margin="5px"
android:textStyle="bold"> </TextView>
<EditTextandroid:layout_height="wrap_content" android:id="@+id/txtPref" android:layout_width="fill_parent" android:layout_margin="10px"> </EditText> </LinearLayout> Listing Program import java.sql.Date; import android.app.Activity; import android.os.Bundle; import android.content.SharedPreferences; import android.widget.*;
long custNumber = 0; String custDateLastCall; TextView captionBox; EditText txtPref;
final int mode = Activity.MODE_PRIVATE; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main);
txtPref = (EditText)findViewById(R.id.txtPref); captionBox = (TextView) findViewById(R.id.captionBox); captionBox.setText("SharedPreference Container: \n\n"+ "we are working on customer Macarena \n" + "fake an interruption, press 'Back Button' \n" + "re-execute the application.");
int mode = Activity.MODE_PRIVATE; SharedPreferences mySharedPreferences = getSharedPreferences(MYPREFS, mode); if (mySharedPreferences != null &&
mySharedPreferences.contains("custName")) { showSavedPreferences(); } else {
txtPref.setText("nada"); }
} @Override
protected void onPause() { savePreferences(); super.onPause(); }
protected void savePreferences() {
SharedPreferences mySharedPreferences =
getSharedPreferences(MYPREFS, mode);
SharedPreferences.Editor myEditor = mySharedPreferences.edit(); myEditor.putString("custName", "Maria Macarena");
myEditor.putInt("custAge", 21);
myEditor.putFloat("custCredit", 1500000.00F); myEditor.putLong("custNumber", 9876543210L); myEditor.putString("custDateLastCall", new Date(custNumber).toLocaleString());
myEditor.commit(); }//savePreferences
public void showSavedPreferences() {
SharedPreferences mySharedPreferences = getSharedPreferences(MYPREFS, mode);
custName =
mySharedPreferences.getString("custName", "defNameValue");
custAge = mySharedPreferences.getInt("custAge", 18);
custCredit = mySharedPreferences.getFloat("custCredit", 1000.00F);
custNumber =
mySharedPreferences.getLong("custNumber", 1L);
custDateLastCall =
mySharedPreferences.getString("custDateLastCall",new Date(mode).toLocaleString());
String msg = "name: " + custName + "\nAge: " + custAge
+ "\nCredit: " + custCredit + "\nLastCall: " + custDateLastCall; txtPref.setText(msg); }} Output
File
Data anda pilihan penyimpanan adalah sebagai berikut:
1. Shared PreferencesStore primitif swasta dalam pasangan kunci-nilai.
2. Internal StorageStore data pribadi pada memori perangkat. 3. Eksternal StorageStore data publik pada penyimpanan eksternal bersama.
4. SQLiteDatabasesStore data terstruktur dalam database pribadi. 5. Network ConnectionStore data pada web dengan server jaringan Anda sendiri.
Example 2 XML
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"> <Buttonandroid:id="@+id/close"
android:layout_width="fill_parent" android:layout_height="fill_parent" android:singleLine="false" android:gravity="top" /> </LinearLayout> Listing Program import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class files extends Activity {
private final static String NOTES="notes.txt"; private EditText editor;
@Override
public void onCreate(Bundle icicle) { super.onCreate(icicle);
setContentView(R.layout.main);
editor=(EditText)findViewById(R.id.editor); Button btn=(Button)findViewById(R.id.close); btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) { finish(); } }); } } Output
Example 3 XML <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/widget28" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ff0000ff" android:orientation="vertical" > <EditText android:id="@+id/txtData" android:layout_width="fill_parent" android:layout_height="180px"
android:text="Enter some data here ..."
android:textSize="18sp"/> <Button
android:id="@+id/btnWriteSDFile"
android:layout_width="143px"
android:layout_height="44px"
android:text="1. Write SD File"/> <Button
android:id="@+id/btnClearScreen"
android:layout_width="141px"
android:layout_height="42px"
android:text="3. Read SD File"/> <Button android:id="@+id/btnClose" android:layout_width="141px" android:layout_height="43px" android:text="4. Close"/> </LinearLayout>
SQL Database
1. SQLite mengimplementasikan sebagian besar standar
SQL-92 untuk SQL.
2. Hal ini memiliki dukungan parsial untuk memicu dan
memungkinkan query yang paling kompleks (kecuali dibuat untuk bergabung luar).
3. SQLite tidak menerapkan batasan integritas referensial
melalui model kendala kunci asing.
4. SQLite menggunakan model data yang mengetik santai.
5. Alih-alih menetapkan jenis untuk seluruh kolom, jenis
ditugaskan untuk nilai-nilai individu. Hal ini mirip dengan tipe Variant dalam Visual Basic.
6. Oleh karena itu memungkinkan untuk memasukkan string