Pages

Membuat Intent di Android

Hallo sobat blogger, dikesempatan kali ini saya akan membahas tentang penggunaan intent di android. Intent itu sendiri adalah pesan asynchronous yang memungkinkan aplikasi untuk memberikan request secara fungsional dari komponen yang berbeda di sistem android, misalnya service, broadcast receiver atau activity. Sebuah aplikasi dapat memanggil komponen secaralangsung (eksplisit intent) atau mengetahui komponen mana yang teregister untuk intent, menyebutkan nama targetnya (class) yang akan dipanggil.

Untuk implicit intent, tidak meyebutkan targetnya, melainkan menyebutkan action, data atau categorynya. Sistem akan mencocokan komponen yang mempunyai intent-filter yang diminta, jika cocok maka intent tersebut akan di aktifkan. 

Langsung saja kita buat programnya

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="15dip"
        android:paddingTop="5dip"
        android:text="Please Choose :" />

    <Button
        android:id="@+id/intentbrowser"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Intent Browser" />

    <Button
        android:id="@+id/autocomplete"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Auto Complete" />

</LinearLayout>

autocomplte.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/TextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Kota :"
        android:paddingBottom="10dip" />
   
    <AutoCompleteTextView
        android:id="@+id/auto01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text=""/>

</LinearLayout>

intentbrowser.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

</LinearLayout>


UsingIntent.java 

package com.apandi.intent;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class UsingIntentActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btn_pilih = (Button) findViewById(R.id.intentbrowser);
        btn_pilih.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                Intent i = new Intent(UsingIntentActivity.this,
                        IntentBrowser.class);
                startActivity(i);
            }
        });

        Button btn_search = (Button) findViewById(R.id.autocomplete);
        btn_search.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                Intent i = new Intent(UsingIntentActivity.this,
                        AutoComplete.class);
                startActivity(i);
            }
        });
    }

}
 

AutoComplete.java 

package com.apandi.intent;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class AutoComplete extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.autocomplete);

        AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.auto01);
        ArrayAdapter adapter = new ArrayAdapter(this,
                android.R.layout.simple_dropdown_item_1line, KOTA);
        textView.setAdapter(adapter);
    }

    static final String[] KOTA = new String[] {

    "Jakarta", "Bandung", "Yogyakarta", "Surabaya", "Tangerang"

    };
}

IntentBrowser.java 

package com.apandi.intent;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

public class IntentBrowser extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.intentbrowser);
        openBrowser();
    }

    private void openBrowser() {
        // TODO Auto-generated method stub
        Uri uri = Uri.parse("http://www.facebook.com");
        Intent i = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(i);

    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.apandi.intent"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".UsingIntentActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
         <activity
             android:label="Auto Complete"
            android:name=".AutoComplete" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
         <activity
            android:label="Intent Browser"
            android:name=".IntentBrowser" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Penjelasan 

Intent memiliki fungsi untuk memanggil activity lain yang masih dalam 1 package. Pada program terdapat tiga file java dan xml, untuk file java diantaranya : UsingIntent.java ; AutoComplete.java ; IntentBrowser.java. Sedangkan untuk xml terdiri dari : main.xml ; autocomplete.xml ; intentbrowser.xml.

File UsingIntent.java merupakan program utama dari pembuatan intent ini, UsingIntent akan memanggil activity lain yang telah dideklarasikan sebelumnya. File AutoComplete.java berisi program auto search, dimana bila kita mengetikan kata yang sudah ada di program, maka kata tersebuta akan muncul secara otomatis.Untuk file IntentBrowser.java berisi program implicit intent, yaitu sebuah intent yang sudah terdapat pada android dan kita hanya perlu memanggil fungsi intent tersebut. Sebelum menjalankan program ini, jangan lupa daftarkan setiap file java ke dalam AndroidManifest

Untuk membuat sebuah program ini, Hal pertama yang harus dilakukan adalah membuat project baru, kita tentukan Minimum SDK yang akan digunakan, dalam hal ini saya menggunakan Minimum SDK Android 2.2. Jika sudah membuat project baru maka akan tercipta 4 file default yaitu class Activity utama di folder src, main.xml di folder rex/layout, file string.xml pada folder res/value dan file AndroidManifest.xml yang menyimpan seluruh informasi penting dari aplikasi yang dibuat mulai dari nama class hingga component yang digunakan seperti broadcast receiver dan lain-lain.

Output


 



2 komentar: