Intent
Membuat aplikasi mobile khususnya Android, mungkin membutuhkan lebih dari satu activity. Pengolahan data atau menjalankan tugas tidak memungkinkan dilakukan pada UI main thread, karena jika tugas ini membutuhkan waktu yang lama aplikasi akan mengalami force close. Aplikasi Android juga menjalankan tugas berdasarkan event yang diterima. Hal-hal ini dapat dilakukan menggunakan konsep Intent.
Pengertian Intent
Intent merupakan sebuah mekanisme yang digunakan untuk melakukan sebuah aksi dari komponen aplikasi. Untuk dapat melakukan sebuah aksi pada sebuah intent, ada 3 cara yang dapat dilakukan:
- Menjalankan sebuah activity lain baik dengan data ataupun tanpa data
- Membuat sebuah service untuk menjalankan pekerjaan tertentu pada sebuah background/non main thread.
- Mengirimkan sebuah broadcast. Pesan yang dikirimkan dalam keadaan tertentu, misalkan ketika booting atau sedang melakukan pengisian data baru mengirimkan data.
Terdapat 2 model Intent dalam pemrograman Android yaitu:
Explicit Intent
Dikatakan intent explicit karena intent tersebut biasanya dibuat oleh seorang
programmer berdasarkan kebutuhan yang ada. Untuk memanggil intent tersebut
biasanya digunakan nama kelas, misalkan id.ac.polinema.WelcomeActivity
Implicit Intent
Model intent ini sebaliknya dari intent explicit, kita tidak perlu menggunakan nama kelas untuk memanggilnya. Intent model ini sudah disediakan oleh system android, sebagai contoh kita akan melakukan pemanggilan telp maka seorang programmer tanpa harus membuat intent untuk melakukan pemanggilan telp.
Activity dan Layout
Pengaturan Layout pada Activity diatur dengan menggunakan method
setContentView()
yang menerima parameter berupa resource layout. Dikarenakan
ada pemisahan logika dan tampilan, untuk menghubungkan digunakan
findViewById()
. Method tersebut membutuhkan parameter id variabel Component
yang didefinisikan dengan property android:id
. Contoh penulisan id layout:
<EditText
android:id="@+id/input_username"
android:hint="@string/username_hint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
Sedangkan untuk menghubungkan pada Activity dilakukan pada method onCreate()
dan disimpan pada variabel sesuai tipe Component. Jika pada layout <EditText
/>
maka harus disimpan juga dengan tipe EditText
atau parent yang sama. Pada
versi Android sekarang TIDAK DIBUTUHKAN proses casting tipe data lagi.
Contoh:
public class MainActivity extends AppCompat {
private EditText usernameInput;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
usernameInput = findViewById(R.id.input_username);
}
}
Catatan: Silahkan fork kemudian clone Starter Code Intent terlebih dahulu, sebelum memulai praktikum.
Tips: Anda juga bisa menggunakan menu File -> Project from Verson Control -> Git dan masukkan url repository fork GitHub untuk membuat project baru yang berasal dari repository GitHub.