DIARI PROGRAMMER #1, Android: Google Maps Di Fragment

DIARI PROGRAMMER #1

Android: Google Maps Di Fragment

Google Maps Di Fragment

Saya baru terpikir buat ini setelah saya tahu bahwa jadi developer Android benar-benar menguji kesabaran. Sebenarnya saya sudah lama menjadi developer, namun entah kenapa saya baru terpikir untuk mengabadikan juang lelah saya di sebuah diari terbuka.

Objektif: Sematkan Peta Android di Activity

Jika kita lihat aplikasi transportasi online, akan selalu ada sebuah peta yang menjadi bagian dari tampilan tersebut. Entah peta itu menampilkan pengemudi yang available, mencari tujuan, dan lain-lain. Intinya, peta tersebut menyatu dengan sekumpulan objek yang lain. Entah itu tombol, teks, rating, atau input-input yang lain.
Berarti, saya harus menyediakan sebuah ruang untuk saya sematkan sebuah peta.

Permasalahan:

Saya tidak akan membahas bagaimana caranya mendapatkan API untuk Google Mapsnya. Itu sudah sangat banyak dijelaskan di Google dan Youtube, dan itu mudah, bahkan sangat mudah. Setiap API memiliki kuota yang jika kita memanggil APInya melebihi kuota, maka API akan diblokir sebelum kita perpanjang. Beruntung, Google mereset kuota API setiap awal bulan. Kuotanya pun besar hingga ribuan, jadi jangan khawatir jika hanya ditujukan untuk belajar.
Masalahnya, meskipun Android Studio sudah memiliki Activity khusus untuk Google Maps (Google Maps Activity), namun Activity tersebut hanya berupa tampilan full, bukan yang saya inginkan.
Hampir setiap tutorial yang membahas tentang penyematan Google Maps pasti selalu menggunakan Google Maps Activity, yang mana bukan itu tujuan saya. Yang pada akhirnya, saya memutuskan untuk membuat fragmen peta.

BUTEK #1 : Error inflating class fragment

Apa sih fragment? Gampangnya, itu sebenarnya sekumpulan kode/objek yang dapat digunakan berulang-ulang dalam Activity yang berbeda-beda. Contoh, jika kita ingin menampilkan sebuah popup yang keluarnya itu-itu lagi, maka daripada harus berlelah-lelah mengkoding ulang popup tersebut di setiap Activity, cukup buat sebuah tampilan popup di fragment, dan kita dapat memanggil menggunakan fragment tersebut di Activity lain.
Mirip sebuah fungsi sih ya, hanya ini memanggil fungsi tampilan saja.
Akhirnya dapat pula tutorial yang membahas bagaimana implementasi Google Maps pada Fragment pada video berikut. Inti dari video:

  1. Buat Google Maps Activity
  2. Google Maps Activity berfungsi untuk menaruh template maps beserta inputan key APInya, daripada koding capek-capek lagi.
  3. Kemudian buat fragment baru yang bebas ingin diberi nama apapun.
  4. Kopas layout XMLnya Google Maps Activity kesana dan jadikan fragmentnya sebuah FrameLayout.
  5. Setelah itu hanya koding tambahan yang tidak terlalu penting untuk meyakinkan bahwa Fragmentnya selalu terdeklarasi.

Setelah itu semua selesai, saya membuat Activity baru (nama bebas) untuk mendrag&drop fragmentnya ke layout editor.

Error inflating class fragment

Setelah itu tinggal dijalankan, dan…

What?! Ada error “Error inflating class fragment” di Logcat!

Aduh paling males kalo ngeliat error gak jelas begono.

Butek daku dibuatnya, semua solusi dari stackoverflow sudah dibaca semuanya, tapi tidak ada yang membantu. Akhirnya saya pelan-pelan baca errornya di logcat, bahwa tertulis must implement OnFragmentInteractionListener.

The hell is that?! Setelah saya baca kembali, ternyata Aktivitas yang saya buat barusan harus mengimplementasi OnFragmentInteractionListener karena pada fungsi onAttachnya si Fragment, harus menyertakan itu.

Error inflating class fragment

Ya sudah, akhirnya saya tambahkan implements di kelas Activity yang ada Fragmentnya.

Error inflating class fragment

Nanti Android Studio menampilkan garis bawah merah khas MS. Word karena ada error. Nah kalian tinggal cari bola lampu merah di samping kiri kodenya dan klik itu, lalu klik yang paling atas hingga tercipta fungsi override berikut (kalian bisa ketik sendiri):

Google Maps Di Fragment

Setelah itu saya jalankan dan… alhamdulillah, petanya tampil di aplikasi, bersama dengan yang objek-objek yang lain.

Butek #2 : Interaksi Ke Fragment

Bagaimana kemudian saya memanggil fungsi fragment dari Activity? Ternyata cukup mudah hehe… Cukup buat public function di fragment,

Google Maps Di Fragment

Saya beri nama mapUpdate untuk fungsinya. Namun sebenarnya bebas. Boleh hanya fungsi perkalian untuk ditampilkan di logcat jika untuk tes semata, atau apapun. Ini saya juga hanya mencoba-coba untuk interaksinya saja via sebuah tombol yang saya tambahkan di Activity yang memuat fragmentnya.
Setelah itu, tombol tersebut saya beri perintah jika diklik.

Google Maps Di Fragment

Cukup dua baris yang berisikan:

  • Final variable yang bertipekan nama kelas fragment. Kenapa harus final, karena Android Studio maunya begitu hehe…, mungkin agar konsisten bahwa yang menjadi acuan nilai variabelnya sebelum dikirimkan ke perintah kliknya adalah yang itu.
  • Kemudian panggil fungsi fragmentnya.

Saya jalankan dan… voila. Fungsinya bekerja. Setiap saya klik tombolnya, petanya membuat marker sendiri di lokasi latitude dan longitude yang telah ditentukan.

Ada yang belum jelas? Mengapa tidak berkomentar? :)

Your email address will not be published. Required fields are marked *

  • Saya tertarik membahas mengenai masalah iri hati, jika kalian pernah merasa iri, dalam hal apa?
    • Keilmuan 56%, 18 votes
      18 votes 56%
      18 votes - 56% of all votes
    • Harta 19%, 6 votes
      6 votes 19%
      6 votes - 19% of all votes
    • Anatomi (Rupa, Bentuk Tubuh, dst) 13%, 4 votes
      4 votes 13%
      4 votes - 13% of all votes
    • Jabatan 6%, 2 votes
      2 votes 6%
      2 votes - 6% of all votes
    • Popularitas 3%, 1 vote
      1 vote 3%
      1 vote - 3% of all votes
    • Pasangan 3%, 1 vote
      1 vote 3%
      1 vote - 3% of all votes
    Total Votes: 32
    May 9, 2018 - August 10, 2018
    Voting is closed

    Vote kalian sudah saya buatkan artikelnya, klik di sini. Terima kasih.