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.
- Untuk memanggil activity lain yang masih dalam 1 package
- Untuk memanggil activity lain yang tidak dalam 1 package dan project
- 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
- Implicit intent adalah intent yang memanggil fungsi activity yang sudah ada di fungsi internal android seperti Dial Number, Open Browser dan lainya.
- 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 {filelink=7}
Sumber
oh ternyata menggunakan java ya.. saya kira menggunakan bahasa c
mas mau tanya..
klo mau manggil aplikasi yg lain gimana?
misal : aplikasi LBS seperti tutorial sebelumnya..
makasih
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 🙂
mas ini pake aplikasi apa ya?
Om, saya minta turorial membuat attachment dnk.. 🙂
mau yang contoh explicit intent dong mas
mas saya ada eror “R cannot be resolved to a variable”..mohon pecerahannya,,,
mas mohon bantuannya,,tolong terangin tentang record dan modularitas di eclips serta contohnya,,karena hari rabu sya ada UAS di kampus,,,mohon bantuannya tmakash
@Wilz : settingan manifest filenya bro… tambain activity yg mo dipake.
kalo g salah 😀
pak mau tanya,
kalo manggil web tapi munculnya ga di browser, tetep di aplikasi itu aja bisa ga?gmn caranya ya?mohon bantuannya..
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..
Mas agus haryanto tutorial quiz sederhana nya dong??
Mas agus,cara donlot source gimana ya?..
ini di donlot gagal mulu…
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
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??
@baybay, Ini mungkin maksudnya pindah activity. kalau pindah activity lihat tutorial selanjutnya (Explicit Intent).
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
Klo untuk yang mengambil gambarnya mas, gimana codingnya?!
Mungkin bisa membantu…
Tolong bales.a di e-mail aja mas..
Thanks…
@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
Mas Agus, maaf.
Link Dowload sourcenya kug uda ga bisa.
Tolong di cek lagi mas.
trima kasih