BAHAN DISKUSI PEMROGRAMAN MOBILE PERTEMUAN 5

Mata Kuliah : Pemrograman Mobile
Dosen Pengampu : Nandang Hermanto, M.Kom
Disusun Oleh : Ana Rofiqoh 15.11.0203
Probowati Setyo Rini 15.11.0220
Giat Riyadi 15.11.0286
Randi Octavian A 15.11.0273
Fandy Yuniawan 15.11.0287
Ginanjar Tri Oktavianto 15.11.0309
Kelas : TI 15 D
PROGRAM STUDI TEKNIK INFORMATIKA
STMIK AMIKOM PURWOKERTO
2017
BAHAN DISKUSI PERTEMUAN 5
- Fragment
- Membuat Fragment
- Menambahkan Fragment pada Activity
- Membuat UI Flexible dengan Fragment
- Komunikasi Antar Fragment
- Frament
Fragment merupakan bagian dari UI dalam activity. Kamu dapat menggabungkan beberapa fragment dalam activity untuk membuat multi-pane UI.Ada beberapa hal yang kamu perlu tahu tentang fragment yaitu, fragment memiliki siklus hidup(lifecycle) sendiri, dapat proses event sendiri, dan dapat ditambah atau dihapus ketika activity sedang jalan. Fragment diperkenalkan pada HoneyComb API 11 namun bisa digunakan pada perangkat android lama dengan menggunakan Support Library dari 1.6 sampai 2.0.
Contoh fragment seperti di gambar berikut.

Method dari fragment berikut :
- onAttach(Activity) : digunakan untuk memanggil 1 kali ketika menempel di Activity.
- onCreate(Bundle) : digunakan untuk mempersiapkan fragment.
- onCreateView (Layout Inflater, View Group, Bundle)
: menciptakan dan menampilkan kembali secara hirarki.
- onActivityCreated(Bundle) : method ini dipanggil setelah method onCreate().
- onViewStateRestored(Bundle) : digunakan untuk menyatakan informasi kepada fragment bahwa semua akan disimpak ke dalam state (layar) dari tampilan fragment secara hirarki yang telah dipulihkan.
- .onStart() : digunakan untuk membuat fragment terlihat.
- onResume() : digunakan untuk membuat fragment interaktif.
- onPause() : digunakan jika fragment tidak lagi interaktif.
- onStop() : digunakan jika fragment tidak lagi terlihat.
Sumber : Https://blog.teknorial.com
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.
Biasanya, Anda harus mengimplementasikan setidaknya metode daur hidup berikut ini:
Sistem akan memanggilnya saat membuat fragmen. Dalam implementasi, Anda harus melakukan inisialisasi komponen penting dari fragmen yang ingin dipertahankan saat fragmen dihentikan sementara atau dihentikan, kemudian dilanjutkan.
Sistem akan memanggilnya saat fragmen menggambar antarmuka penggunanya untuk yang pertama kali. Untuk menggambar UI fragmen, Anda harus mengembalikan View dari metode ini yang menjadi akar layout fragmen. Hasil yang dikembalikan bisa berupa null jika fragmen tidak menyediakan UI.
Sistem akan memanggil metode ini sebagai indikasi pertama bahwa pengguna sedang meninggalkan fragmen Anda (walau itu tidak selalu berarti fragmen sedang dimusnahkan). Inilah biasanya tempat Anda harus mengikat setiap perubahan yang harus dipertahankan selepas sesi pengguna saat ini (karena pengguna mungkin tidak kembali).
Kebanyakan aplikasi harus mengimplementasikan setidaknya tiga metode ini untuk setiap fragmen, namun ada beberapa metode callback lain yang juga harus Anda gunakan untuk menangani berbagai tahap daur hidup fragmen. Semua metode callback daur hidup akan dibahas secara lebih detail, di bagian tentang Menangani Daur Hidup Fragmen.
Ada juga beberapa subkelas yang mungkin perlu diperpanjang, sebagai ganti kelas basis Fragment:
Menampilkan dialog mengambang. Penggunaan kelas ini untuk membuat dialog merupakan alternatif yang baik dari penggunaan metode helper dialog di kelas Activity, karena Anda bisa menyatukan dialog fragmen ke dalam back-stack fragmen yang dikelola oleh aktivitas, sehingga pengguna bisa menutup ke fragmen yang ditinggalkan.
Menampilkan daftar item yang dikelola oleh adaptor (misalnya SimpleCursorAdapter), serupa dengan ListActivity. Menampilkan beberapa metode pengelolaan tampilan daftar seperti callback onListItemClick() untuk menangani kejadian klik.
Menampilkan hierarki objek Preference sebagai daftar, serupa dengan PreferenceActivity. Hal ini berguna saat membuat aktivitas “setelan” untuk aplikasi Anda.
Sumber : https://developer.android.com/guide/components/fragments.html?hl=id
3. Menambahkan Fragment Pada 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:
- Deklarasikan fragmen dalam file layout aktivitas.
Dalam hal ini, Anda bisa menetapkan properti layout fragmen seakan-akan sebuah tampilan. Misalnya, berikut ini adalah file layout untuk aktivitas dengan dua fragmen:
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:orientation=”horizontal”
android:layout_width=”match_parent”
android:layout_height=”match_parent”>
<fragment android:name=”com.example.news.ArticleListFragment”
android:id=”@+id/list”
android:layout_weight=”1″
android:layout_width=”0dp”
android:layout_height=”match_parent” />
<fragment android:name=”com.example.news.ArticleReaderFragment”
android:id=”@+id/viewer”
android:layout_weight=”2″
android:layout_width=”0dp”
android:layout_height=”match_parent” />
</LinearLayout>
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.
- Atau, secara programatis tambahkan fragmen ke ViewGroupyang 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.
Sumber : https://developer.android.com/guide/components/fragments.html?hl=id
4. Membuat UI Flexible Dengan Fagment
Flexible UI adalah Flexible UI di Android Studio, bagaimana aplikasi Android dapat dibangun dengan menggunakan lebih dari satu fragment dan cukup memiliki 1 Activity.
Contoh Flexible UI dalam fragment :
Buatlah Layout pada Activity_main.xml dengan kodingan seperti dibawah:

Setelah itu masukan kode pada MainActivity.Java seperti dibawah :

Buatlah layout baru bernama Fragmentfrist.xml dan isikan seperti kode dibawah ini :

Buatlah java class baru FirstFragment.Java dan isikan kode seperti dibawah :


Buatlah layout baru bernama fragment_second.xml kemudian tambahkan kode seperti dibawah ini :


Bualah java class baru SecondFragment.java setelah itu isikan kode seperti dibawah:


Buatlah layout baru bernama Fragment_third.xml kemudian isilah kode seperti dibawah :

Hasil ketika Program dijalankan :



Sumber : http://sniptcode.com/penggunaan-fragment-dalam-flexible-ui-di-android-studio/
5. Komunikasi Antar Fragment

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);
Komunikasi Antar Fragment
Berikut beberapa hal yang perlu kamu ketahui untuk membuat fragment saling berkomunikasi:
- Jangan langsung referensi dari fragment ke fragment lainnya.
- Buatlah Interface yang berisikan method yang akan bertindak sebagai pembawa suatu event.
- Implements interface pada activity
- Fragment 1 menggunakan interface untuk mengirim pesan.
- Pada activity, method interface yang telah diimplementasikan dapat direferensikan ke fragment 2 dan melakukan perubahan pada sesuai method yang diberikan.
Sumber : https://developer.android.com/guide/components/fragments.html?hl=id