Folder Resources (Res) dan tata
kelolanya
Capaian Pembelajaran
•
Memahami Folder Resources dan isinya
•
Mampu mengakses
•
Mengenal siklus hidup activity aplikasi
berbasis Android.
•
Memahami fungsi state pada siklus hidup
activity aplikasi berbasis Android.
•
Membuat aplikasi berbasis Android yang
Isi Folder Resources (Res)
Directory
Deskripsi
anim/
Tempat file XML yang berisi definisi property animasi.
Lokasi folder:
res/anim/
Akses melalui: class
R.anim
color/
Tempat file XML yang berisi definisi property warna (color).
Lokasi folder:
res/color/
Akses melalui: class
R.color
drawable/
Tempat file gambar (.png, .jpg, .gif) atau file XML yang
di-compile menjadi bitmap, gambar untuk animasi, dsb.
Lokasi folder:
res/drawable/
Akses melalui: class
R.drawable
layout/
Tempat file XML yang berisi definisi layout UI (user Interface)
Lokasi folder:
res/layout/
Akses melalui: class
R.layout
menu/
Tempat file XML yang berisi definisi menu aplikasi, seperti,
Options Menu, Context Menu, atau Sub Menu.
Lokasi folder:
res/menu/
Isi Folder Resources (Res)
Directory
Deskripsi
raw/
Tempat menyimpan sembarang (segala) file dalam bentuk
mentah.
Untuk membuka file raw:
callResources.openRawResource()
dengan resource ID:
R.raw.namaFile
values/
Tempat file XML yang berisi nilai (value), seperti; strings,
integers, dan colors.
Berikut adalah aturan penamaan file pada directory ini:
arrays.xml
resource arrays, diakses melalui: class
R.array
integers.xml
resource integers, diakses melalui: class
R.integer
bools.xml
resource boolean, diakses melalui:
class
R.bool
colors.xml
color values, diakses melalui: class
R.color
dimens.xml
dimension values, diakses melalui: class
R.dimen
strings.xml
string values, diakses melalui: class
R.string
styles.xml
styles, diakses melalui: class
R.style
xml/
Tempat menyimpan berbagai file konfigurasi dala bentuk XML
yang dapat dibaca saat runtime.
Mengakses Resource dari Code Java
•
Saat aplikasi android di-compile, class R akan dibuat, class R
ini akan berisi semua ID resource yang ada di dalam directory
res/ (termasuk subfoldernya).
Dengan demikian kita dapat mengakses resource dengan :
▫ Menggunakan class R disertai sub-derectory dan nama
resource-nya (nama file maupun name pada tag), contoh:
R.drawable.gambarLogo
Artinya: mengakses file gambarLogo yang berada pada directory
res/drawable/
▫ Menggunakan class R disertai dengan resource ID-nya, contoh:
R.id.setinganGambar
Artinya: mengakses nilai yang didefinisikan dengan ID
setinganGambar pada file yang terdapat di dalam folder res/
atau res/sub-directory/
ImageView imageView = (ImageView) findViewById(
R.id.myimageview
);
imageView.setImageResource(
R.drawable.myimage
);
ImageView imageView
= (
ImageView
)
findViewById
(
R
.
id
.
myimageview
);
Mengakses Resource dari Code Java
ImageView imageView = (ImageView) findViewById(
R.id.myimageview
);
imageView.setImageResource(R.drawable.myimage);
ImageView imageView
= (
ImageView
)
findViewById
(
R
.
id
.
myimageview
);
imageView
.
setImageResource
(
R
.
drawable
.
myimage
);
Contoh:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello, World!</string>
</resources>
<?
xml version
=
"1.0" encoding
=
"utf-8"
?>
<resources>
<string
name
=
"hello"
>
Hello, World!
</string>
</resources>
Contoh:
TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello);
TextView msgTextView
= (
TextView
)
findViewById
(
R
.
id
.
msg
);
msgTextView
.
setText
(
R
.
string
.
hello
);
Misal suatu file Strings.xml berisi definisi seperti berikut:
Mengakses nilai pada tag
string dengan name:hello
Mengakses nilai pada tag
string dengan name:hello
Mengakses nilai
yang ada pada id
msg
Mengakses Resource dari XML
<resources>
<
string name="pesan"
>Pesan ini diambil dari di Strings.xml</
string
>
</resources>
<resources>
<
string
name=
"pesan"
>Pesan ini diambil dari di Strings.xml</
string
>
</resources>
Contoh:
<
TextView
android:text="@string/pesan"
android:textColor="@color/colorPrimaryDark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:id="@+id/textView"
/>
<
TextView
android
:text=
"@string/pesan"
android
:textColor=
"@color/colorPrimaryDark"
android
:layout_width=
"wrap_content"
android
:layout_height=
"wrap_content"
android
:layout_centerVertical=
"true"
android
:layout_centerHorizontal=
"true"
android
:id=
"@+id/textView"
/>
Misal suatu file
strings.xml
;
@color/colorPrimaryDark ,
artinya: lokasi nilai ada di tag
color dengan name:
colorPrimaryDark
@color/colorPrimaryDark ,
artinya: lokasi nilai ada di tag
color dengan name:
colorPrimaryDark
@string/pesan , artinya: lokasi
nilai ada di tag string dengan
name: pesan
@string/pesan , artinya: lokasi
nilai ada di tag string dengan
name: pesan
<resources>
<
color name="colorPrimary"
>#3F51B5</
color
>
<
color name="colorPrimaryDark"
>#303f9f</
color
>
</resources>
<resources>
<
color
name=
"colorPrimary"
>#3F51B5</
color
>
<
color
name=
"colorPrimaryDark"
>#303f9f</
color
>
</resources>
dan
colors.xml
:
State pada Siklus Hidup
Activity
•
Aplikasi android merupakan aplikasi yang siklus hidupnya
memiliki beberapa state (kondisi).
•
Berdasarkan diagram siklus hidup aplikasi android di atas
diketahui terdapat beberapa method utama terkait
state
(kondisi) dari activity yang ada pada aplikasi android:
1. onCreate()
2. onStart()
3. onResume()
4. onPause()
5. onStop()
6. onRestart()
7. onDestroy()
Berikut adalah state
lainnya yang tidak memiliki
method:
Log untuk Debug State Activity
•
Sistem Android menggunakan sistem terpusat untuk setiap
log.
•
Log ini juga bisa digunakan untuk mengetahui state suatu
activity pada siklus hidup activity.
•
Berikut yang harus dilakukan untuk mengakses log:
▫
Import class Log
Import android.util.Log;
▫
Buat di dalam class field TAG (penanda) agar log mudah
dikenali
Pivate static final String TAG="Augury";
▫
Pada method state yang ingin dideteksi, tambahkan method
Log berikut
Contoh Log untuk Debug State Activity
import
android.util.Log;
public class
MainActivity
extends
Activity {
private static final
String
TAG
=
"KataAugury"
;
@Override
protected void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.
activity_main
);
Log.
i
(
TAG
,
"Method onCreate Jalan"
);
import
android.util.Log;
public class
MainActivity
extends
Activity {
private static final
String
TAG
=
"KataAugury"
;
@Override
protected void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
Monitor Log di Konsol
•
Untuk memonitor log, gunakan konsol
android monitor.
•
Akan tampil Konsol seperti di bawah ini:
Click
Android Monitor
pada tab paling bawah di
IDE
Click
Android Monitor
pada tab paling bawah di
IDE
Click
dan pilih
Edit Filter Configuration, akan
tampil dialog spt pada slide berikut ini.
Click
dan pilih
Edit Filter Configuration, akan
tampil dialog spt pada slide berikut ini.
Click
dan pilih
Info
pada Monitors, sesuai method Log
yang kita gunakan.
Dalam hal ini info, karena kita menggunakan
Log.i( )
Click
dan pilih
Info
pada Monitors, sesuai method Log
yang kita gunakan.
Monitor Log di Konsol
•
Dialog yang tampil setelah pilih Edit
Filter Configuration:
Nama filter
yang akan
kita buat
Nama filter
yang akan
kita buat
Isi dengan String yang kita isi pada field
string TAG.
Misal data field:
private static final String TAG =
"KataAugury";
Isi dengan String yang kita isi pada field
string TAG.
Misal data field:
Monitor Log di Konsol
•
Dialog yang tampil setelah pilih Edit
Filter Configuration:
Pilih nama
filter yang
sebelumnya
kita buat
Pilih nama
filter yang
sebelumnya
kita buat
Tampilan konsol sesuai filter yang kita
tentukan, yaitu; hanya menampilkan
info yang mengandung kata:
KataAugury
Tampilan konsol sesuai filter yang kita
tentukan, yaitu; hanya menampilkan
info yang mengandung kata:
Activity State
Monitor saat activity pertama kali jalan:
… com.contoh.augury.aplikasi2 I/KataAugury: Method
onCreate Jalan
… com.contoh.augury.aplikasi2 I/KataAugury: Method
onStart Jalan
… com.contoh.augury.aplikasi2 I/KataAugury: Method
onResume Jalan
Monitor kalau tombol home ditekan,
meninggalkan Activity:
Activity State
Monitor saat activity dijalankan lagi melalui menu history aplikasi:
… com.contoh.augury.aplikasi2 I/KataAugury: Method onCreate Jalan
… com.contoh.augury.aplikasi2 I/KataAugury: Method onStart Jalan
… com.contoh.augury.aplikasi2 I/KataAugury: Method onResume Jalan
… com.contoh.augury.aplikasi2 I/KataAugury: Method onPause Jalan
… com.contoh.augury.aplikasi2 I/KataAugury: Method onStop Jalan
… com.contoh.augury.aplikasi2 I/KataAugury: Method onRestart Jalan
… com.contoh.augury.aplikasi2 I/KataAugury: Method onStart Jalan
… com.contoh.augury.aplikasi2 I/KataAugury: Method onResume Jalan
Monitor kalau tombol back ditekan, keluar dari Activity:
TIPS - Log untuk Debug State Activity
•
Sistem Android menggunakan sistem terpusat untuk setiap
log.
•
Log ini juga bisa digunakan untuk mengetahui state suatu
activity pada siklus hidup activity.
•
Berikut yang harus dilakukan untuk mengakses log:
▫
Import class Log
Import android.util.Log;
▫
Buat di dalam class field TAG (penanda) agar log mudah
dikenali
Pivate static final String TAG="Augury";
▫
Pada method state yang ingin dideteksi, tambahkan method
Log berikut
Log Method
•
Method yang bisa digunakan pada log:
Log.v()
verbose
Segala sesuatu hal akan di-log
Log.d()
debug
Untuk keperluan debug (nilai variable akan di-log)
Log.i()
info
Untuk me-log informasi yang diperlukan, contoh; menampilkan
informasi sukses saat koneksi ke server berhasil.
Log.w()
warning
Untuk me-log warning
Log.e()
error
Untuk me-log error
TIPS - Auto Generate Method
•
Alt+Insert
Akan tampil menu seperti dibawah,
Referensi
•
Android Tutorial: Simply Easy Learning
by tutorialspoint.com
•
TheNewBoston YouTube Playlist: Android
App Development for Beginners Playlist.
https://