Dialog adalah jendela kecil yang muncul diatas sebuah activity untuk memberikan informasi, meminta keputusan ataupun input data tertentu dari user. Dioalog tidak mengisi ruang layar secara penuh tapi berada di tengah layar dan menimpa activity konteksnya(pen: Acitvity terakhir yang tampil). Berikut contoh dari komponen Dialog pada android.
Pada artikel ini saya mengasumsikan bahwa sobat sekalian sudah dapat membuat Dialog. Oleh karena pada artikel ini tidak akan dijelaskan tahapan dalam pembuatan dialognya. Saya akan langsung ke pembahasan yaitu tutorial membuat base dialog di aplikasi android.
Baca Juga : Tutorial Cara membuat Base Activity
Kenapa harus bikin base dialog?. Sebenarnya tidak masalah jika kamu hanya membuat satu dialog saja di aplikasi yang sedang kamu buat, kamu bisa langsung mengextend DialogFragment ke class dialog yang sedang kamu buat. Tapi bagaimana jika kamu membuat banyak sekali dialog, dengan fungsi-fungsi yang hampir mirip didalamnya?. Tentu cara yang paling efisien adalah membuat semua fitur-fiturnya dalam satu class base kemudian kita extend class basenya ke class dialog kita, selain itu kita juga bisa mengkotumisasi basenya agar lebih mudah di implimentasikan. Nah itu tujuannya kenapa kita harus bikin class base.
advertisement
Oke kita langsung saja ketutorialnya
- Buat sebuah package folder dengan nama base
- Buat sebuah class bernama BaseDialog didalam folder package base tadi, disini kita akan menggunakan kotlin karena lebih mudah.
Beri nama BaseDialog dan pilih tipe Class kemudian OK - Didalam class BaseDialog tadi silahkan kalian tulis code berikut,
package com.zain.tutorialgson.base import android.app.Dialog import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.support.v4.app.DialogFragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.Window import android.widget.RelativeLayout abstract class BaseDialog : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val root = RelativeLayout(activity) root.layoutParams = ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT ) var dialog = Dialog(context!!) dialog.requestWindowFeature(Window.FEATURE_NO_TITLE) dialog.setContentView(root) if (dialog.window != null) { dialog.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) dialog.window!!.setLayout( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT ) } dialog.setCanceledOnTouchOutside(false) return dialog } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(setLayout(), container, false) } override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) initDialog() } //----------SetUp------------------------------ abstract fun setLayout(): Int abstract fun initDialog() //-------Buat fungsi-fungsi kalian dibawah sini-------- //Memanggil Toast menjadi lebih sederhana fun showToast(message :String) { Toast.makeText(this.context,message,Toast.LENGTH_LONG) } }
Penjelasan
Disini kita membuat class BaseDialognya menjadi abstract class agar tidak bisak langsung di implementasikan. Pada basedialog tersebut kita menggunakan tiga callback dari dialog yaitu onCreateDialog, onCreatedView dan onCreatedActivity. Pada onCreateDialog kita mengatur seperti apa tampilan umum dari dialognya, seperti background, ukuran dan lainnya. Pada onCreatedView kita coba mengatur cara menset layout.xml nya yaitu dengan methode abstract setLayout. Pada onActivityCreated disini kita memanggil method abstract iniDialog sebagai tempat inisialisai varible dan methodenya di class dialog turunan. Method showToast adalah cara menampilkan toast dengan lebih sederhana.
advertisement
Cara menggunakan class BaseDialog yang sudah kita buat tadi, yaitu dengan mengganti inheritance dari dialog kita menjadi BaseDialog, codenya sebagai berikut,
class MyDialog:BaseDialog() {
override fun setLayout(): Int = R.layout.dialog_layout
override fun initDialog() {
//Tulis kodingmu disini
showToast("Dialog Berhasil dibuat")
}
}
Baca Juga : Tutorial Cara membuat Base Fragment
Sekian dulu tutorial kali cara membuat base dialog di android. Terimakasih sudah mampir, jangan lupa di share jika kalian merasa artikel ini bermanfaat, kalau ada pertanyaan silahkan tulis di kolom komentar. Good luck!
Silahkan berkomentar dengan baik dan bijak!