Cara Membuat Fragment di Android (dan tipsnya)

Ahmad Arif Faizin
Aug 23, 2017 · 4 min read

Fragment adalah salah satu bagian dari User Interface selain Activity. Salah satu alasan mengapa kamu harus menggunakan fragment yaitu kita dapat membuat banyak tampilan tanpa berpindah-pindah Activity. Selain itu kita juga dapat memakai satu fragment dalam banyak Activity sekaligus. Enak kan?

Lalu bagaimana cara memakainya? Cekitout..

Sebagai contoh latihan, Pertama kita buat dulu project baru dengan menggunakan template Navigation Drawer

Lalu pada content_main rubah layout dasar dengan FrameLayout dan beri nama id. Frame layout ini akan berfungsi sebagai Container tempat fragment muncul

Lalu buat fragment baru dengan cara klik kanan pada package > New > Fragment > FragmentBlank

Kemudian beri nama Fragment dan hilangkan tanda centang pada kedua opsi (include fragment factory method dan iclude interface callback) untuk membuat fragment yang paling simple dan mudah dipahami

Kemudian tekan Finish, maka akan dibuatkan dua file baru yaitu class BlueFragment pada Java dan fragment_blue.xml pada layout. Beri warna background pada layout fragment sebagai pembeda antara activity biasa dengan fragment

Sekarang kita coba mengganti container pada Activity utama dengan fragment yang sudah kita buat.

Tambahkan koding berikut pada MainActivity pada method onNavigationItemSelected

Kemudian kita Run, maka saat klik item Share (contoh) pada Navigation Drawer akan mengganti layout dasar (frame4fragment) menjadi layout pada fragment_blue.xml

Mantab kan? ini adalah contoh paling simpel dalam membuat fragment. namun ada beberapa perbedaan koding pada Fragment. Sebagai contoh, coba buat sebuah tombol di dalam fragment_blue.xml yang ketika diklik, akan menampilkan Toast

Kemudian masuk ke BlueFragment.java dan coba untuk inisialisasi tombol tersebut dan tampilkan Toast. Silahkan dicoba :)


.

.

.

.

.


Oke, sudah bisa?

beberapa mungkin bingung dimana letak untuk inisialisasi Button-nya.

Sebenarnya fungsi onCreateView pada fragment hampir sama dengan onCreate pada Activity. Hanya saja di Activity sudah terdapat setContentView sehingga kita dapat findViewById dengan tepat.

Untuk di fragment sebenarnya untuk layout sudah diatur sudah diatur dengan menggunakan Inflater, namun karena disitu method langsung return Inflater, kita tidak dapat mengambil id di dalamnya. untuk itu kita perlu membuat dulu variabel untuk View-nya dengan cara sebagai berikut :

Oke, paham? Jadi di dalam fragment kita perlu membuat variable View terlebih dahulu untuk memanggil fungsi findViewById, di dalam Activity, hal ini sudah default sehingga tidak perlu membuat variable View-nya. langkah-langkah seperti ini juga akan kita buat saat menampilkan layout dengan menggunakan Inflater seperti pada adapter dan custom dialog.

Masalah kedua yaitu saat membuat Toast

Apabila pada Activity kita bisa menggunakan “this” sebagai Context, namun hal ini berbeda pada Fragment, sebagai pengganti “this” kita bisa menggunakan “getActivity()” sebagai Context.

Sudah tidak error kan ^^ dan pastinya akan dapat tampil pula saat kita Run

Oke, jadi kesimpulannya berikut beberapa perbedaan antara Activity dan Fragment

  1. findViewById >> fragmentView.findViewById
  2. this >> getActivity()

Sekian dan terima kasih, semoga bermanfaats


Perubahan tak akan berubah tanpa ada perubahan~

)
Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade