About Me

Agus Haryanto,
Android Trainner,
GoogleMaps (JavaScript) Trainer
JQuery and JQuery Mobile Trainer
Java, Java Script and PHP Trainer
Freelance Developer Android
Freelance Developer Blackberry
Freelance Developer Web (GIS Googlemaps)
Freelance Developer SMS Gateway

jika ingin contact saya bisa emali ke agus.superwriter@gmail.com

ym: agus_h23

Pin BB : 2AD38B33

Facebook : Agus Haryanto


Article

Mengenal Intent Pada Android

Jumpa lagi dengan Agus Haryanto, Pada kesempatan kali ini kita akan kenalan dengan salah satu bagian dari development android yang penting yaitu intent.

Pada beberapa tutorial yang pernah saya tulis, kita pernah menggunakan intent.

Kalau ditanya apa itu intent. Agak bingung juga jawabnya. Kalau pendapat saya, intent itu adalah sebuah object yang merupkan Kunci  untuk berkomunikasi dengan activity lainnya.

Kesimpulan diatas saya dapatkan dari fungsi intent itu sendiri.

  1. Untuk memanggil activity lain yang masih dalam 1 package
  2. Untuk memanggil activity lain yang tidak dalam  1 package dan project
  3. Untuk memanggil activity yang sudah ada di fungsi internal android seperti Dial Number, Open Browser dan lainnya.

Satu lagi yang penting dengan intent kita bisa mengirimkan data ke Activity lain dan juga dapat menangkap data dari Activity tersebut.

Kalau baca tutorial yang ada di websitenya http://vogella.de intent itu dibagi 2 yaitu

  1. Implicit intent adalah intent yang memanggil fungsi activity yang sudah ada di fungsi internal android seperti Dial Number, Open Browser dan lainya.
  2. Explicit Intent yang memanggil Activity lain yang masih dalam 1 project atupun beda project.

Sekarang mari kita coba praktekan implementasi  implicit intent pada aplikasi android kita. Kita coba buat Aplikasi yang didalamnya ada fungsi Call Dial, Open Browser dan Kamera. Berhubung sudah mau masuk bulan ramdhan nanti pada fungsi Open Browser. Kita masukkan address url website yang menampilkan Jadwal Puasa 2011 / Jadwal Imsakiyah Ramadahn 1432H

1.Buat New Project seperti dibawah ini

2. Sekarang mari kita buat user interfacenya dengan mengedit file main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TextView android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:text="agusharyanto.net Belajar Implicit Intent" />
	<Button android:layout_height="wrap_content"
		android:layout_width="match_parent" android:text="Pesan McDonald"
		android:id="@+id/btnMcDonald"></Button>
	<Button android:layout_height="wrap_content"
		android:layout_width="match_parent" android:text="Pesan KFC"
		android:id="@+id/btnKFC"></Button>
	<Button android:text="Belajar Android" android:layout_height="wrap_content"
		android:layout_width="match_parent" android:id="@+id/btnBelajarAndroid"></Button>
	<Button android:text="Jadwal Puasa" android:layout_height="wrap_content"
		android:id="@+id/btnJadwalPuasa" android:layout_width="match_parent"></Button>
	<Button android:text="Ambil Gambar" android:layout_height="wrap_content"
		android:id="@+id/btnKamera" android:layout_width="match_parent"></Button>
</LinearLayout>

Pada code main.xml diatas Menggunakan LinearLayout yang didalamnya terdapat 1 buah TextView dan 5 Button.

3. Edit file BelajarImplicitIntent.java

package com.agusharyanto.net.implicit.intent;

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

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

		Button btnMcDonald = (Button)findViewById(R.id.btnMcDonald);
		Button btnKFC = (Button)findViewById(R.id.btnKFC);
	    Button btnBelajarAndroid = (Button)findViewById(R.id.btnBelajarAndroid);
		Button btnJadwalPuasa = (Button)findViewById(R.id.btnJadwalPuasa);
		Button btnKamera = (Button)findViewById(R.id.btnKamera);

		 btnMcDonald.setOnClickListener(new Button.OnClickListener(){
	            public void onClick(View v){
	              //  getRequest(txtResult,txtUrl);
	            	CallIntent(v);
	            }
	        });
		 btnKFC.setOnClickListener(new Button.OnClickListener(){
	            public void onClick(View v){
	              //  getRequest(txtResult,txtUrl);
	            	CallIntent(v);
	            }
	        });
		 btnBelajarAndroid.setOnClickListener(new Button.OnClickListener(){
	            public void onClick(View v){
	              //  getRequest(txtResult,txtUrl);
	            	CallIntent(v);
	            }
	        });
		 btnJadwalPuasa.setOnClickListener(new Button.OnClickListener(){
	            public void onClick(View v){
	              //  getRequest(txtResult,txtUrl);
	            	CallIntent(v);
	            }
	        });
		 btnKamera.setOnClickListener(new Button.OnClickListener(){
	            public void onClick(View v){
	            //  getRequest(txtResult,txtUrl);
	            	CallIntent(v);

	            }
	        });
	}

	public void CallIntent(View view) {
		Intent intent = null;
		switch (view.getId()) {
		case R.id.btnKFC:
			//akan melakukan Call ke nomor 14022
			intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:14022"));
			startActivity(intent);
			break;
		case R.id.btnMcDonald:
			//akan melakukan Call ke nomor 14045
			intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:14045"));
			startActivity(intent);
			break;
		case R.id.btnBelajarAndroid:
			//akan memanggil browser dan menampilkan website http://agusharyanto.net
			intent = new Intent(Intent.ACTION_VIEW, Uri
					.parse("http://agusharyanto.net"));
			startActivity(intent);
			break;
		case R.id.btnJadwalPuasa:
			//akan memanggil browser dan menampilkan website http://www.pkpu.or.id/imsyak/
			intent = new Intent(Intent.ACTION_VIEW, Uri
					.parse("http://www.pkpu.or.id/imsyak/"));
			startActivity(intent);
			break;

		case R.id.btnKamera:
			//akan memanggil fungsi Camera android
			intent = new Intent("android.media.action.IMAGE_CAPTURE");
			startActivityForResult(intent, 0);
			break;
		default:
			break;
		}
	}

	@Override
	public void onActivityResult(int requestCode, int resultCode, Intent data) {
	  if (resultCode == Activity.RESULT_OK && requestCode == 0) {
	    String result = data.toURI();
	    Toast.makeText(this, result, Toast.LENGTH_LONG);
	  }
	}

}

Disini pada masing-masing button dipasang setOnClickListener.

Agar pada saat kita mengklik atau sentuh button tersebut akan mengekseskusi method onClick didalamnya.

		 btnJadwalPuasa.setOnClickListener(new Button.OnClickListener(){
	            public void onClick(View v){
	              //  getRequest(txtResult,txtUrl);
	            	CallIntent(v);
	            }
	        });

Contohnya btnJadwalPuasa apabile diklik akan mengeksekusi perintah yang ada pada method onClick dalam hal ini akan memanggil method CallIntent

		case R.id.btnJadwalPuasa:
			//akan memanggil browser dan menampilkan website http://www.pkpu.or.id/imsyak/
			intent = new Intent(Intent.ACTION_VIEW, Uri
					.parse("http://www.pkpu.or.id/imsyak/"));
			startActivity(intent);
			break;

Method CallIntent berfungsi untuk menjalankan Suatu Activity berdasarkan button yang diklik.

Jika button yang diklik adalah btnJadwalPuasa maka akan memanggil intent yang akan memanggil browser dan menampilkan website http://www.pkpu.or.id/imsyak/ yang isinya menampilkan Jadwal Puasa 2011 / Jadwal Imsakiyah Ramadhan 1432H
4. Sekarang kita edit file AndroidManifest.xml

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

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

    </application>

    <uses-permission android:name="android.permission.CALL_PRIVILEGED"></uses-permission>
	<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
	<uses-permission android:name="android.permission.INTERNET"></uses-permission>
	<uses-permission android:name="android.permission.CAMERA"></uses-permission>
</manifest>

5.Sekarang mari kita jalankan projectnya

Sentuh / Klik button Jadwal Puasa, maka akan menampilkan Jadwal Puasa  2011
(jadwal imsakiyah ramadahan 2011) dari website http://www.pkpu.or.id/imsyak/

Diwebsite ini kita bisa pilih jadwal berdarkan kota

Wah, Alhamdulillah kita bisa melihat jadwal puasa melalui aplikasi yang kita buat :)

Nah Misalkan nanti kita lagi dikantor sudah mendekati waktu berbuka, kita bisa pesan Makanan ke Mc Donald atau KFC dengan Menyentuh button Pesan McDonald atau KFC.

Aha, jadi dapat ide lagi nih bikin aplikasi yang fungsinya untuk memudahkan user memesan makanan ke Restoran atau Rumah Makan Favorite mereka yang menyediakan layanan jasa pesan antar.

Semoga Bermanfaat
Salam Hangat

Agus Haryanto

Source Download

Sumber

1. http://vogella.de

2. http://developer.android.com

3. http://www.pkpu.or.id/

Share

23 comments to Mengenal Intent Pada Android

  • oh ternyata menggunakan java ya.. saya kira menggunakan bahasa c

  • afan

    mas mau tanya..
    klo mau manggil aplikasi yg lain gimana?
    misal : aplikasi LBS seperti tutorial sebelumnya..
    makasih

  • Wilz

    saya mau tanya mas.

    ditutorial diatas khan menggunakan button ya.

    kalau saya menggunakan list menu, kenapa force close ya ?

    mohon bimbingannya. saya baru 3 hari belajar android :)

  • guntoro

    mas ini pake aplikasi apa ya?

  • feby

    Om, saya minta turorial membuat attachment dnk.. :)

  • danisa

    mau yang contoh explicit intent dong mas

  • dian

    mas saya ada eror “R cannot be resolved to a variable”..mohon pecerahannya,,,

  • herna

    mas mohon bantuannya,,tolong terangin tentang record dan modularitas di eclips serta contohnya,,karena hari rabu sya ada UAS di kampus,,,mohon bantuannya tmakash

  • m4ru

    @Wilz : settingan manifest filenya bro… tambain activity yg mo dipake.

    kalo g salah :D

  • siwna

    pak mau tanya,
    kalo manggil web tapi munculnya ga di browser, tetep di aplikasi itu aja bisa ga?gmn caranya ya?mohon bantuannya..

  • Achwan

    Pak mau tanya, kalo kita bikin otomatis sms dengan nomor dan format yang telah kita tentukan (untuk sms gateway) Bagaimana caranya?

  • mas tanya,
    klo mau manggil class yg bukan activity tp extends SurfaceView implements SurfaceHolder.Callback, Runnable. dengan button di class activity gimana???
    mohon bantuannya. trima kasih.

  • mas mau tanya.
    cara codding webkit di localhost gmana ya?? terus apa kita perlu memakai uses permission jg??

  • Wah nice2,, makasi mas..

  • Angga

    Mas agus haryanto tutorial quiz sederhana nya dong??

  • Febi

    Mas agus,cara donlot source gimana ya?..
    ini di donlot gagal mulu…

  • Fabio

    mas agus,saya udh coba buat,tapi kenapa aplikasi saya ga berjalan ya. Malah force closed terus. Kira-kira masalah’y ada dibagian mana ya mas? mohon pencerahan’y. Terima kasih mas

  • baybay

    mas mau tanya klo contoh yang di atas kan setiap button di hubungkan dengan url.. klo url nya di ganti dengan layout2 yang kita buat gmn cranya??

  • Agus Haryanto

    @baybay, Ini mungkin maksudnya pindah activity. kalau pindah activity lihat tutorial selanjutnya (Explicit Intent).

  • fahmi

    Mas, saya ada problem di FruitAdapternya public FruitAdapter(Context context, intlayoutResourceId, Fruit[] data) {
    di situ mas. Kenapa ya ? Ada tanda silang merah (x) di sana. Mohon jawabannya mas, saya mau buat tugas akhir

  • Bayu

    Klo untuk yang mengambil gambarnya mas, gimana codingnya?!
    Mungkin bisa membantu…
    Tolong bales.a di e-mail aja mas..
    Thanks…

  • Agus Haryanto

    @Bayu, Secara sederhana pastinya kita sudah punya url gambarnya apakah itu di sdcard atau di server. jadi yang tinggal kasih tahu aja url gambarnya nah activity selanjutnya tinggal mengeset gambar berdasrkan url yang dikirim dari activity sebelumnya

  • praseto

    Mas Agus, maaf.
    Link Dowload sourcenya kug uda ga bisa.
    Tolong di cek lagi mas.
    trima kasih

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Spam protection by WP Captcha-Free