PMO Pertemuan Ke 5 Fragment Kelompok 1 Rizki Aditya (13.11.xxxx) Doni Pranoto (14.11.0120) Rakhmat Ari B.P (14.11.0390) Pangestu Rahmat N(15.11.0001) Arif Sidik P (15.11.0007) 6. Sakti Septianto (15.11.0011) 7. Aan Hisbullah (15.11.0014)
Materi Pertemuan 5 Fragmant Membuat Fragment Menambahkan Fragment pada activity Membuat UI Flexsibel dengan Fragment Komunikasi Antar Fragment
1. Fragment Fragmen adalah bagian modular dari desain aktivitas dan ini digunakan untuk mewakili perilaku antarmuka pengguna (UI) dalam suatu aktivitas. Dengan menggunakan fragmen kita bisa membuat desain UI yang fleksibel yang bisa disesuaikan berdasarkan ukuran layar perangkat seperti tablet, smartphone.Kita bisa membangun multi pane UI dengan menggabungkan beberapa fragmen dalam satu aktivitas dan kita dapat menggunakan kembali fragmen yang sama dalam beberapa aktivitas. Fragmen ini memiliki siklus hidup dan panggilan balik sendiri dan menerima kejadian masukannya sendiri. Kami dapat menambahkan atau menghapus fragmen dalam aktivitas saat aktivitas berjalan Misalnya—untuk melanjutkan contoh aplikasi berita— aplikasi bisa menyematkan dua fragmen dalam Aktivitas A, saat berjalan pada perangkat berukuran tablet. Akan tetapi, pada layar berukuran handset, ruang untuk kedua fragmen tidak cukup, sehingga Aktivitas A hanya menyertakan fragmen untuk daftar artikel, dan saat pengguna memilih artikel, Aktivitas B akan dimulai, termasuk fragmen kedua untuk membaca artikel. Sehingga, aplikasi mendukung tablet dan handset dengan menggunakan kembali fragmen dalam kombinasi berbeda, seperti diilustrasikan dalam gambar 1.
Contoh Fragment pada android Gambar 1. Contoh bagaimana dua modul UI yang didefinisikan oleh fragmen bisa digabungkan ke dalam satu aktivitas untuk desain tablet, namun dipisahkan untuk desain handset.
2. Membuat Fragment Untuk membuat fragmen, Anda harus membuat subkelas Fragment (atau subkelasnya yang ada). Kelas Fragment memiliki kode yang mirip seperti Activity. Kelas ini memiliki metode callback yang serupa dengan aktivitas, seperti onCreate(), onStart(), onPause(), dan onStop(). Sebenarnya , jika Anda mengkonversi aplikasi Android saat ini untuk menggunakan fragmen, Anda mungkin cukup memindahkan kode dari metode callback aktivitas ke masing-masing metode callback fragmen.
2. Membuat Fragment Biasanya, Anda harus mengimplementasikan setidaknya metode daur hidup berikut ini: onCreate() onCreateView() onPause() DialogFragment ListFragment
3. Menambahkan Fragment ke activity Biasanya, fragmen berkontribusi pada sebagian UI ke aktivitas host, yang disematkan sebagai bagian dari hierarki tampilan keseluruhan aktivitas. Ada dua cara untuk menambahkan fragmen ke layout aktivitas: A. Deklarasikan fragmen dalam file layout aktivitas.
3. Menambahkan Fragment Ke Activity Atribut android:name dalam <fragment> menetapkan kelas Fragment untuk dibuat instance-nya dalam layout. Saat sistem membuat layout aktivitas, sistem membuat instance setiap fragmen sebagaimana yang ditetapkan dalam layout dan memanggil metode onCreateView() masing-masing, untuk mengambil setiap fragmen. Sistem akan menyisipkan View yang dikembalikan oleh fragmen secara langsung, menggantikan elemen <fragment>. Catatan: Setiap fragmen memerlukan identifier unik yang bisa digunakan sistem untuk memulihkan fragmen jika aktivitas dimulai kembali (dan identifier yang bisa digunakan menangkap fragmen untuk melakukan transaksi, seperti membuangnya). Ada tiga cara untuk memberikan ID bagi fragmen: Menyediakan atribut android:id bersama ID unik. Menyediakan atribut android:tag bersama string unik. Jika Anda tidak menyediakan dua hal tersebut, sistem akan menggunakan ID tampilan kontainer.
3. Menambahkan Fragment Ke Activity B. Atau, secara programatis tambahkan fragmen ke ViewGroup yang ada: Kapan saja saat aktivitas berjalan, Anda bisa menambahkan fragmen ke layout aktivitas. Anda cukup menetapkan ViewGroup di tempat memasukkan fragmen. Untuk membuat transaksi fragmen dalam aktivitas (seperti menambah, membuang, atau mengganti fragmen), Anda harus menggunakan API dari FragmentTransaction. Anda bisa mengambil instance FragmentTransaction dari Activity seperti ini: FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); Selanjutnya Anda bisa menambahkan fragmen menggunakan metode add(), dengan menetapkan fragmen yang akan ditambahkan dan tampilan tempat menyisipkannya. Misalnya: ExampleFragment fragment = new ExampleFragment(); fragmentTransaction.add(R.id.fragment_container, fragment); fragmentTransaction.commit(); Argumen pertama yang diteruskan ke add() adalah ViewGroup tempat fragmen harus dimasukkan, yang ditetapkan oleh ID sumber daya, dan parameter kedua merupakan fragmen yang akan ditambahkan. Setelah membuat perubahan dengan FragmentTransaction, Anda harus memanggil commit() untuk menerapkan perubahan.
4. Menambahkan Fragment Tanpa UI Untuk menambahkan fragmen tanpa UI, tambahkan fragmen dari aktivitas menggunakan add(Fragment, String) (dengan memasukkan string unik "tag" untuk fragmen, bukan ID tampilan). Ini akan menambahkan fragmen, namun, karena tidak dikaitkan dengan tampilan dalam layout aktivitas, ini tidak akan menerima panggilan ke onCreateView(). Jadi Anda tidak perlu mengimplementasikan metode itu. Menyediakan tag string untuk fragmen tidak hanya untuk fragmen non-UI—Anda juga bisa menyediakan tag string untuk fragmen yang memiliki UI—namun jika fragmen tidak memiliki UI , maka tag string adalah satu-satunya cara untuk mengidentifikasinya. Jika Anda ingin mendapatkan fragmen dari aktivitas nantinya, Anda perlu menggunakan findFragmentByTag(). Untuk contoh aktivitas yang menggunakan fragmen sebagai pekerja latar belakang, tanpa UI, lihat contoh FragmentRetainInstance.java, yang disertakan dalam contoh SDK (tersedia melalui Android SDK Manager) dan berada di sistem Anda sebagai <sdk_root>/APIDemos/app/src/main/java/com/example/android/apis/app/FragmentRetainInstance.java
5. Berkomunikasi dengan Aktivitas Meskipun Fragment diimplementasikan sebagai objek yang tidak bergantung pada Activity dan bisa digunakan dalam banyak aktivitas, instance tertentu dari fragmen secara langsung terkait dengan aktivitas yang dimuatnya. Khususnya, fragmen bisa mengakses instance Activity dengan getActivity() dan dengan mudah melakukan tugas-tugas seperti mencari tampilan dalam layout aktivitas: View listView = getActivity().findViewById(R.id.list); Demikian pula, aktivitas Anda bisa memanggil metode di fragmen dengan mendapatkan referensi ke Fragment dari FragmentManager, menggunakan findFragmentById() atau findFragmentByTag(). Misalnya: ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
Sekian Dan Terimakasih