Android Intent

Versi 1.0

1. Mengenal Intent

Intent merupakan suatu pesan yang digunakan untuk mengaktifkan tiga komponen dasar pada aplikasi Android yaitu Activity, Service, dan Broadcast Receiver. Aktifasi pada komponen-komponen tersebut bisa terjadi pada aplikasi yang sama atau berbeda, seperti menjalankan Activity, inisiasi Service, atau pengiriman pesan kepada Broadcast Receiver. Pada saat terjadi komunikasi antar komponen, Intent menyimpan paket informasi yang digunakan pada proses tersebut. Berikut ini adalah beberapa contoh mekanisme pengiriman Intent pada masing-masing jenis komponen :
  • Object Intent untuk menjalankan Activity baru atau memerintahkan Activity melakukan sesuatu dengan mempassing object Intent pada fungsi Context.startActivity() atau Acvity.startActivityForResult().
  • Object Intent untuk menginisiasi sebuah Service baru atau melakukan sesuatu pada Service yang sedang berjalan dengan mempassing object Intent pada fungsi Context.startService().
  • Object Intent untuk mengirimkan pesan kepada seluruh Broadcast Receiver dengan mempassing object Intent pada fungsi Context.sendBroadcast(), Context.sendOrderedBroadcast(), atau Context.sendStickyBroadcast().

2. Intent Untuk Transfer Data

Intent dapat digunakan untuk transfer data antar Activity. Pada saat sebuah Activity memanggil Activity yang lain, Intent dapat menyimpan data informasi yang ikut dikirimkan pada pemanggilan tersebut, seperti berikut ini.

    Intent intent = new Intent( this, ActivityProfile.class);
        intent.putExtra( "NAMA", "dian" );
        intent.putExtra( "UMUR", 17);
        startActivity(intent);
Pada pemanggilan Activity tersebut, dikirimkan informasi berupa data NAMA dengan nilai String “dian” dan data UMUR dengan nilai integer 17. Informasi tersebut dapat ditangkap oleh activity yang dipanggil dengan code seperti ini.
    Bundle extras = getIntent().getExtras();
        String nama = extras.getString("NAMA");
        int umur = extras.getInt( "UMUR");

3. Intent untuk melakukan aktifitas tertentu

Mengirim email, membuka halaman website, melihat lokasi pada map, merupakan aktifitas-aktifitas yang biasanya ada pada aplikasi Android. Untuk melakukan aktifitas-aktifitas tersebut, kita bisa membuat sendiri fiturnya atau bisa dengan memanfaatkan Intent untuk mengerjakannya. Intent dapat memanggil aplikasi lain untuk mengerjakan aktifitas tersebut, seperti memanggil aplikasi Gmail untuk mengirim email, aplikasi browser seperti Opera atau Chrome untuk membuka halaman website, atau aplikasi Maps untuk menampilkan lokasi pada peta. Beberapa contoh pemanfaatan Intent untuk melakukan aktifitas tertentu dengan bantuan aplikasi lain :
  • Intent untuk mengirim email
        Intent emailIntent = new Intent(android.content.Intent. ACTION_SEND );
        String emailList[] = { "diandeveloper@gmail.com" };
        emailIntent.putExtra(android.content.Intent. EXTRA_EMAIL , emailList);
        emailIntent.setType( "plain/text" );
        emailIntent.putExtra(android.content.Intent. EXTRA_SUBJECT ,
                      "[diandeveloper - Mengenal Intent]" );
        startActivity(Intent. createChooser(emailIntent, "Send via"));
2013-11-05_17-00-36
2013-11-05_17-00-48
  • Intent untuk membuka halaman website
        String url = "https://diandeveloper.wordpress.com" ;
        Intent intent = new Intent(Intent. ACTION_VIEW);
        intent.setData(Uri. parse(url));
        startActivity(intent);
2013-11-05_17-03-23
  • Intent untuk menampilkan lokasi pada peta
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:-7.290192,112.737136?q=Surabaya"));
        startActivity(intent);

2013-11-16_15-39-17

2013-11-16_15-36-22
Iklan

Android Activity

Versi 1.0

1. Pengertian Activity

Activity adalah komponen pada aplikasi Android yang menampilkan dan mengatur halaman aplikasi sebagai tempat interaksi antara pengguna dengan aplikasi, seperti membuat panggilan telepon, mengambil foto, mengirim pesan singkat, atau mengirim email. Sebuah Activity mengatur satu halaman user interface aplikasi. Sehingga jika sebuah aplikasi Android memiliki beberapa halaman user interface yang saling berinteraksi, berarti aplikasi tersebut memiliki beberapa Activity yang saling berinteraksi.

2. Membuat Activity

Activity merupakan sebuah class yang menghandle sebuah halaman user interface pada aplikasi Android. Untuk membuat sebuah Activity, kita lakukan dengan membuat sebuah class yang meng-extends class Activity. Bila kita membuat project aplikasi Android baru pada Android Development Tools, maka ada sebuah class yang bernama MainActivity.java yang tergenerate secara otomatis. Class ini meng-extends class Activity (MainActivity extends Activity) sehingga class ini merupakan sebuah Activity. Activity menampilkan halaman user interface dengan memanggil fungsi onCreate(). Fungsi ini dipanggil ketika class dibuat. Di dalam fungsi tersebut, kita dapat menentukan xml apa yang kita jadikan sebagai halaman user interface dengan memanggil fungsi setContentView() dengan parameter berupa xml halaman user interface, misalnya setContentView(R.layout.activity_main). Code dari class MainActivity adalah sebagai berikut.

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); 

    } 
}

Activity ini menampilkan halaman user interface dari activity_main.xml yang menampilkan tulisan “Hello world!”. Jika kita menjalankannya maka akan tampil halaman seperti ini.

1

3. Menjalankan Activity Lain

Sering kali sebuah aplikasi Android memiliki lebih dari satu halaman user interface. Transisi antar halaman dapat dilakukan dengan pemanggilan Activity lain dari sebuah Activity. Misalnya Activity halaman utama memanggil Activity halaman profile sehingga terjadi transisi dari halaman utama menuju halaman profile. Pemanggilan Activity lain dapat dilakukan dengan memanggil fungsi startActivity() dengan mempassing parameter Intent. Intent adalah object yang mendefinisikan Activity apa yang akan kita jalankan.

Kita akan membuat dua halaman UI yaitu Halaman Utama dan Halaman Profile. Halaman Utama akan dihandle oleh ActivityUtama.java dan Halaman Profile akan dihandle oleh ActivityProfile.java. ActivityUtama.java akan memanggil ActivityProfile.java. Untuk membuatnya, terlebih dahulu kita buat xml layout dari kedua halaman tersebut.

Buat file halaman_utama.xml pada folder layout dan copy-paste code berikut pada file tersebut.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_margin="32dp"
        android:text="HALAMAN UTAMA" />

    <Button
        android:id="@+id/button_profile"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="PROFILE" />

</LinearLayout>
Buat file halaman_profile.xml pada folder layout dan copy-paste code berikut pada file tersebut.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_margin="32dp"
        android:text="HALAMAN PROFILE" />

</LinearLayout>
Kemudian kita buat dua class Activity yaitu class ActivityUtama.java dan ActivityProfile.java.
Buat class ActivityUtama.java dan copy-paste code berikut ini pada class tersebut.
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class ActivityUtama extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.halaman_utama);

		Button bProfile = (Button) findViewById(R.id.button_profile);
		bProfile.setOnClickListener(new View.OnClickListener() {
		    @Override
		    public void onClick(View arg0) {
		        Intent intent = new Intent(ActivityUtama.this, ActivityProfile.class);
			startActivity(intent);
		    }
		});
	}
}
Buat class ActivityProfile.java dan copy-paste code berikut ini pada class tersebut.
import android.app.Activity;
import android.os.Bundle;

public class ActivityProfile extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.halaman_profile);
	}
}
Kita harus mendefinisikan class Activity yang baru kita buat pada file Manifest dari aplikasi. Buka file AndroidManifest.xml pada project, hapus code mulai dari  <application  sampai dengan  </application>  dan ganti dengan code berikut ini.
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".ActivityUtama"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".ActivityProfile" />
    </application>
Jalankan project, maka akan tampil halaman berikut ini.
2
Halaman Utama dihandle oleh ActivityUtama.java. Pada halaman tersebut, terdapat tombol Profile. Jika tombol tersebut ditekan, maka ActivityUtama.java akan menjalankan ActivityProfile.java yang menghandle Halaman Profile.
3
Jika pada Halaman Profile ditekan tombol Back, maka akan kembali pada Halaman Utama.