Intent adalah sebuah jembatan yang menghubungkan interaksi antar Activity di aplikasi Android. Intent juga dapat membawa dan mengirimkan data ke Activity lain, bahkan ke aplikasi lain (Gmail, Google Map dsb). Intinya, Intent merupakan mekanisme untuk melakukan sebuah action dan komunikasi antar komponen aplikasi.
Intent terbagi menjadi 2 bagian yaitu Intent Implicit dan Intent Explicit.
Intent Impicit
Intent Implicit: Berfungsi melakukan perpindahan activity (halaman) menuju ke aplikasi internal smartphone. Contohnya ketika hendak membuka sebuah Telphone, Mengirim SMS, MAP dan lain sebagainya.
Mari kita coba untuk mengakses Telp di Android
<ImageButton
android:id="@+id/imgCall"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="?android:attr/listChoiceIndicatorSingle"
android:backgroundTint="@color/purple_500"
android:src="@drawable/ic_baseline_local_phone_24"
android:onClick="Call"/>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void Call(View c){
ImageButton Call = findViewById(R.id.imgCall);
String Nomor = "tel:081362656681";
Intent i = new Intent(Intent.ACTION_DIAL, Uri.parse(Nomor));
startActivity(i);
}
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
Intent Explicit: Berfungsi melakukan perpindahan activity (halaman) ke activity (halaman) lainnya. Explicit intent bekerja dengan menggunakan nama kelas atau hanya dengan activity saja. yang dituju, misal com.dicoding.activity.DetailActivity. Umumnya intent ini digunakan untuk mengaktifkan komponen pada satu aplikasi.
Intent Explicit dibagi 2:
1. Perpindahan langsung ke halaman activity
Buat projek baru dengan nama Intent_Ex, dan language:java
Tambahkan button di Activity_Main.xml
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Activity ke 2"
android:onClick="Activity_2"/>
Tambahkan xml baru. Klik kanan pada app-> new->xml->Layout XML File.
Beri nama activity dengan activity_2. Ingan nama activity tidak boleh mengandung huruf kapital. Jika sudah klik Finish.
Sekarang kita memiliki halaman activity baru. Silahkan tambahkan komponen textView seperti berikut:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Ini Halaman Activity ke 2"/>
Masuk ke MainActivity.java dan panggil activity_2. Buatlah method baru dan masukkan code berikut:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void Activity_2(View v){
setContentView(R.layout.activity_2);
}
Jalankan program.
2. Perpindahan dengan menggunakan class.
Sekarang kita akan memanggil activity kedua dengan cara menggunakan class. Masih di projek yang sama silahkan klik kanan di App-> new->Activity->Empty Activity.
Seperti langkah sebelumnya, Anda dapat mengganti name untuk activity ke dua. Kemudina tentukan Language JAVA/KOTLIN. Sedangkan untuk konfigurasi yang lain biarkan saja dan klik finish jika sudah selesai:
Perhatikan terdapat dua file tambahan di halaman kerja kita. Yailtu activity_main_2.xml dan Main2Activity.java/Main2Activity.kt.
Masuk ke MainActivity.java dan tambahkan code berikut:
JAVA
public void Activity_2(View v){
Intent i = new Intent(MainActivity.this, Main2Activity.class);
startActivity(i);
}
sedangkan pada KOTLIN:
fun Activity_2(view: V) {
val i = Intent (this, Activity_2::class.java)
startActivity(i)
}
Code MainActivity.this, merupakan code yang menjelaskan class yang sedang aktif, sedangkan code Main2Activity.class menjelaskan class yang dituju.
Jalankan Program