Lecture Notes 15.09.2014 LinearLayout 1. Hapus layout pada file xml 2. Drag drop LinearLayout (Vertical) 3. Drag drop button 3x 4. Lihat code di layout xml, jelaskan ttg id 5. Buat strings.xml dari folder values: Name: click_me dan Value: Click Me! 6. Tambahkan @string/click_me di code layout xml untuk semua button 7. Dari GUI Properties ubah orientation ke horizontal 8. Lihat layout xml dan undo lagi orientation ke vertical 9. Drag drop LinearLayout (Horizontal) dibawah button 10. Drag drop 3 button ke LinearLayout (Horizontal) 11. Copy LinearLayout yang sudah center_horizontal dan untuk LinearLayout lain dibawahnya 12. Ikuti
<Button android:id="@+id/Button04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/click_me" /> <Button android:id="@+id/Button05" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/click_me" /> <Button android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/click_me" /> <Button android:id="@+id/Button02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/click_me" /> <Button android:id="@+id/Button03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/click_me" />
android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/click_me" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/click_me" />
RelativeLayout 1. 2. 3. 4.
Jelaskan tentang @dimen, ctrl + click @dimen yang ada Drag drop text field, jangan khawatir letaknya dimana Drag drop button Ikutin step xml di bawah
android:text="Nama" /> //STEP KEDELAPAN <EditText android:id="@+id/editText1" android:layout_width="fill_parent" <-- STEP KEEMPAT, cek GUI --> android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button1" android:layout_toLeftOf="@+id/button1" //STEP KEENAM android:layout_toRightOf="@+id/textView1" //STEP KETUJUH, cek GUI android:ems="10" > <requestFocus /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_marginTop="50dp" android:text="OK" /> STEP KESEMBILAN, tes di emulator
LayoutCode
1. Berikan id pada linear layout 2. Ke MainActivity.java
STEP PERTAMA hanya nambah ini aja package id.ac.unsyiah.layoutcode; import import import import import import
android.app.Activity; android.os.Bundle; android.view.Menu; android.view.MenuItem; android.widget.Button; android.widget.LinearLayout;
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //LinearLayout layout = findViewById(R.id.layout); //STEP PERTAMA //shortcut casting = ctrl + 1 LinearLayout layout = (LinearLayout) findViewById(R.id.layout); SETELAH CASTING Button tombol = new Button(this); //STEP KEDUA tombol.setText(R.string.click_me); //STEP KETIGA layout.addView(tombol); //STEP KEEMPAT dan jalankan emulator /*for (int i = 0; i < 3; i++) { //STEP KELIMA, copy paste button, jalankan emulator Button tombol = new Button(this); tombol.setText(R.string.click_me);
}
}*/
layout.addView(tombol);
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @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(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item);
}
}
GambarDemo 1. Jalankan dulu program yang sudah ada kemudian Import project GambarDemo.zip 2. Lihat folder values strings.xml, sudah di add dua string 3. Lihat folder drawable-xhdpi, sudah di add gambar lab_terpadu.jpg 4. Lihat file layout xml 5. Ctrl+click @dimens 6. Drag drop Large Text, lihat code xml 7. Ctrl+click textAppearance 8. Drag drop ImageView dari Images & Media, pilih lab_terpadu 9. Drag dop TextView normal dari Form Widgets 10. Lihat layout xml 11. Ubah android:text pada tag TextView yang BESAR ke @string/jif 12. Ubah android:text TextView yang kecil ke @string/keterangan 13. Lihat GUI 14. Tambahkan android:layout_marginBottom="20dp" untuk TextView yang BESAR dibawah TextAppearance 15. Copy paste marginBottom di atas dan paste ke ImageView 16. Lihat GUI 17. Tambahkan android:layout_marginLeft="30dp" dan android:layout_marginRight="30dp" untuk TextView terakhir 18. Jalankan emulator LogCat 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Cara menampilkan LogCat pada eclipse, Show View LogCat Jalankan emulator Lihat logcat, penjelasan kolom tag AndroidRuntme, dalvikvm dll Kalau ada fatal error bisa dilihat di logcat Buka ActivityMain.java Crash karena posisi index tidak ada di array list get(0) Buka dan view logcat Lihat error yang warna merah Jangan lupa clear logcat sebelum run emulator Hover semua "MainActivity", right click -> refactor -> Extract Constant
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // //
ArrayList<String> values = new ArrayList<String>(); //STEP PERTAMA String value = values.get(0); }
Log.d("MainActivity", "Activity start!"); //STEP KEDUA
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); Log.d("MainActivity", "Option Menu start!"); //STEP KETIGA 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(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }
}
ToastDemo
1. Di MainActivity: Toast pesan = Toast.makeText(this, "Activity started!", Toast.LENGTH_LONG); pesan.show(); 2. Jalankan Emulator 3. Toast muncul secara otomatis 4. Untuk melihat pesan toast lagi, click tombol back dan ke App list, pilih nama aplikasi 5. Toast juga bisa digunakan untuk user event, misalnya apa yang terjadi jika user click tombol tertentu 6. Click setting, belum muncul apa2 7. Didalam method onOptionsItemSelected tambahkan statement toast berikut: Toast.makeText(this, "Menu Selected!", Toast.LENGTH_LONG).show();
BreakpointDemo 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Jelaskan tentang loop di MainActivity Jalankan emulator Kembali ke eclipse dan pilih LogCat Clear LogCat sebelum menjalankan program Pilih setting option dan lihat LogCat Buat breakpoint pada baris Log.d("MainActivity", msg2); dengan cara double click Harus dalam mode breakpoint Buka jendala emulator dan editor secara bersamaan Pilih Run->Debug atau click debug pada toolbar Pilih setting Jelaskan tentang prespective debug .... Variables, Breakpoints, Expression Hover cursor di breakpoint Click step over (F6), hover lagi cursor Log.d Atau bisa menggunakan Watch view, caranya click block variabel msg, click kanan dan pilih Watch. Dan akan terbuka Expression view Click tombol resume (F8), akan terlihat iterasi 3 Kalau breakpoint sudah selesai, bisa dihilangkan dengan double click breakpoint yang ada disebelah line number ATAU ke breakpoint view, check breakpoint dan dan click tombol X remove button Click variabel view untuk melihat variabel scoupe Untuk melihat apa yang terjadi line by line ketika program di eksekusi
NewActivityDemo 1. Buka layout xml, sudah ditambahkan sebuah button 2. Jalankan emulator 3. Ke eclipse dan buat kelas activity baru 4. Click kanan package dan pilih New->Class 5. Set nama kelas DetailActivity, semua kelas activity harus extends kelas android Activity 6. Pada super class click browse, ketik Activity, pilih kelas Activity 7. Harus register kelas activity tersebut pada file Manifest 8. Buka file AndroidManifest.xml
9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
31. 32.
Perhatikan bahwah kelas main activity sudah didaftar pada manifest Ketik
karena tidak ada child element, boleh diakhir dengan empty tag slash Ketik name ctrl+click android:name Boleh pake .DetailActivity karena berada pada package utama atau hanya memiliki sebuah package. Tapi kalau diluar package utama harus ditulis dengan diawali nama package dan dilanjutkan dengan nama kelas. Buat layout untuk activity baru caranya: Click kanan folder layout->New->Android XML File Karena di click kanan pada folder layout maka eclipse otomatis membaca pada Resource Type sebagai layout Nama file layout harus diawali dengan huruf kecil Click GUI Drag drop text view Set properti pada file xml Ubah android:text ke Activity Kedua Tambah textSize=”20sp” Pada tag linear layout tambahkan gravitiy=”center_horizontal” dan paddingTop=”20dp” Sekarang hubungkan kelas DetailActivity dengan layout yang telah dibuat Buka kelas DetailActivity Ketik oncreate lalu ctrl+space Ketik dibawah super.onCreate(savedInstanceState): setcon ctrl+space dan akan muncul setContentView(R.layout.activity_detail) Ke layout xml activity_main Tambahkan pada tag Button di bawah android:text: android:onClick=”gotoActivity” dan tutup file layout xml Jalankan emulator, coba click tombol, belum bisa karena belum dibuat Intent unt menghubungkan ke activity kedua Pada kelas MainActivity buat method baru Hapus method onOptionsItemSelected Ketik method berikut: public void gotoActivity(View v){ Intent intent = new Intent(this, DetailActivity.class); startActivity(intent); } Jalankan emulator Jika tombol back ditekan makan view activity baru akan dihapus dari memory
Sambungan untuk demo method finish() atau tombol back pada menu icon 33. Pada kelas DetailActivity ketik method berikut: getActionBar().setDisplayHomeAsUpEnabled(true); 34. Kalau error, ubah ke API 11 atau honeycomb pada file manifest 35. Jalankan emulator dan coba click launcher button, harusnya tidak bisa 36. Click home button pada emulator untuk menutup aplikasi 37. Buat method berikut: setop ctrl+space @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { finish(); } //item.getItemId akan mengembalikan id yang kita pilih dan akan dibandingkan dengan id.home // id diatas di-generate oleh framework Android return super.onOptionsItemSelected(item); } 38. Cara ini sering dilakukan pada aplikasi terbaru terutama aplikasi yang telah menggunakan Android 4. Juga sering ditemui pada aplikasi android di Google play atau Amazon store
Tugas harus di archive. Tunjukkan cara archive project menggunakan eclipse.