memulai-belajar-android-studio-bahasa-indonesia

Apa itu Intent dan contohnya Pada Android Studio (Kotlin)

Intent memiliki fungsi yang sangat penting dalam pengembangan aplikasi android, dari yang kita tahu sebuah aplikasi yang kita kembangkan pasti akan memiliki banyak activity. Lalu bagaimana kita bisa bernavigasi antar activity atau komponen lainnya ?

Dan dengan Intent inilah yang akan kita gunakan agar bisa berpindah-pindah antar activity nantinya, begitu juga jika kita ingin mengirim atau passing data ke activity lainnya.

Berikut Method yang digunakan untuk mengirim intent ke komponen lainnya :

  • Context.startActivity()
  • Context.startService()
  • Context.startBroadcast()

Sebuah intent dapat membawa data bundle untuk menjalankan activity apapun.

Contohnya jika sebuah activity akan menjalankan operasi mengirim pesan via email, maka kita bisa menggunakan intent dengan seperti ini “ACTION_SEND”.

Kemudian ada dua tipe intent yaitu :

  1. Explicit Intent
  2. Implicit Intent

Explicit Intent

Sederhananya Explicit intent digunakan untuk memanggil yang ada di aplikasi itu sendiri, contohnya seperti berpindah antar activity didalam aplikasi tersebut termasuk juga mengirim data ke activity lain.

Implicit Intent

Kemudian Implicit intent tidak secara langsung menentukan komponen mana yang harus dipanggil, contohnya saja seperti intent untuk membuka sebuah link berikut.

val url = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.droidtekno.com"))

Contoh kita masukkan kode tersebut ke sebuah tombol, lalu ketika di klik maka sistem akan mencari komponen apa saja yang bisa membuka data dari intent tersebut.

Karena contoh diatas kita isikan sebuah link maka sistem akan menampilkan browser.

Tapi kalau semisal di ponsel user ada banyak app browser biasanya akan muncul opsi ingin gunakan browser apa.

menggunakan-intent-view-implicit-intent
Opsi pilihan Browser

Contoh Penggunaan Intent (Kotlin)

Untuk memulai silahkan buat project baru atau gunakan yang sudah ada.

karena contoh kali ini akan menggunakan banyak tombol maka bisa kita terapkan pendekatan yang baik untuk penulisan event listener seperti pada artikel lalu disini.

Dan juga buat satu buah Empty activity lagi dan totalnya ada dua activity di project ini.

MainActivity

Untuk desain MainActivity kita buat sederhana saja dengan tumpukan tombol seperti ini :

contoh-penggunaan-intent-di-android-studio-menggunakan-kotlin
Desain pada MainActivity

Dan jangan lupa juga diberi id tiap tombolnya, di contoh ini saya buat nama IDnya dari btn1 – btn6

Untuk kode MainActivity.kt nya kita isikan seperti ini:

class MainActivity : AppCompatActivity() , View.OnClickListener{

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_contoh_intent)
        setListener()

    }

    fun setListener(){
        btn1.setOnClickListener(this)
        btn2.setOnClickListener(this)
        btn3.setOnClickListener(this)
        btn4.setOnClickListener(this)
        btn5.setOnClickListener(this)
        btn6.setOnClickListener(this)
    }

    override fun onClick(v: View?) {
		//ubah dengan nama activity kedua kalian
        val pindahan = Intent(this,ActivityDua::class.java)
        val dial = Intent(Intent.ACTION_DIAL, Uri.parse("tel:"+Uri.encode("*123#")))
        val url = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.droidtekno.com"))
        val lokasi = Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=-6.175040, 106.827121"))
		
		//ubah dengan nama package project kalian (lihat di file manifest.xml)
        val defaultp = Intent("com.example.contohandroid")
        val panggilpackage = Intent(Intent.ACTION_VIEW)

        when(v?.id){
            R.id.btn1 -> {
                pindahan.putExtra("JudulIntent","Hai Halo")
                startActivity(pindahan)
            }
            R.id.btn2 -> startActivity(dial)
            R.id.btn3 -> startActivity(url)
            R.id.btn4 -> startActivity(lokasi)
            R.id.btn5 -> {
                defaultp.putExtra("JudulIntent","Dipanggil dari default package")
                startActivity(defaultp)
            }
            R.id.btn6 -> {
                panggilpackage.putExtra("JudulIntent","Dari View")
                startActivity(panggilpackage)
            }
        }
    }
}

Penjelasan :
Baris 21 : Intent untuk berpindah ke activity lainnya (Explicit intent).
Baris 22 : Memberi tahu sistem untuk menelpon sesuai no telp yang di input.
Baris 23 : Memberi tahu sistem untuk membuka link menggunakan browser yang dipilih.
Baris 24 : Memberi tahu sistem untuk membuka sebuah koordinat di maps.
Baris 27 : Memanggil aplikasi yang kita buat dengan nama packagenya.
Baris 28 : Menampilkan daftar aplikasi apa saja yang bisa dipanggil dengan intent (ACTION_VIEW).

Activity kedua

Dan Activitykedua desainnya cukup kita tampilkan teks saja, saya beri ID : textView_terima.

pindah-ke-activity-lain-di-android-studio-kotlin
Desain Activity kedua

Isi kodenya kita isikan untuk menangkap intent dari MainActivity

class ActivityDua : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_dua)
		
		val valuemasuk = intent.getStringExtra("JudulIntent")
        textView_terima.text = valuemasuk		
		
		}	
	}

Uji Coba Penggunaan Intent

Oke semua desain dan kode sudah kita buat, sekarang coba di build dan di jalankan ..

Gimana ? ada error di tombol “Default Package” ?

Kemudian di tombol “Lihat View” tidak muncul nama aplikasi yang kita buat seperti contoh video di atas ?

Itu karena kita belum mengatur activity mana yang dijadikan default jika aplikasi kita dipanggil dengan nama package.

Untuk itu kita tambahkan beberapa baris kode di file Manifest.xml

Manifest.xml

Cari nama activity kedua kalian, dan harusnya kodenya masih seperti ini :

<activity android:name=".ActivityDua" />

Kemudian kita tambahkan baris seperti berikut :

<activity android:name=".ActivityDua">
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="com.example.contohandroid" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

Kalau sudah ditambahkan coba di build kembali dan coba tombol yang error tadi, apakah masih bermasalah ?

Leave a Reply

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