ini adalah kelanjutan dari Membuat Aplikasi dengan Android Studio : Mengenal Activity
Pada modul sebelumnya, telah dibahas penggunaan activity dan fragment sebagai bagian dari komponen pemrograman Aplikasi Android. Modul ini akan membahas intent sebagai sebuah metode perpindahan dari sebuah activity ke activity lain.
Pada modul sebelumnya, telah dibahas penggunaan activity dan fragment sebagai bagian dari komponen pemrograman Aplikasi Android. Modul ini akan membahas intent sebagai sebuah metode perpindahan dari sebuah activity ke activity lain.
Intent
- Intent
adalah mekanisme untuk melakukan Action pada komponen dalam satu
aplikasi yang sama maupun aplikasi lain. Pemanfaatannya sebagai berikut :
- Untuk berpindah halaman dari satu Activity ke Activity lain dengan atau tanpa data
- Untuk menjalankan background Service misal dibutuhkan sebuah proses service untuk mengambil lokasi pengguna, download file atau sikronisasi ke server
- Untuk menyampaikan sebuah objek dari komponen Broadcast misal jika ingin mengetahui jika device Android sudah selesai booting setelah diaktifkan
Explicit dan Implicit Intent
- Explicit Intent
- Untuk mengaktifkan komponen-komponen dalam satu aplikasi yang sama misal : Berpindah Activity atau mengaktifkan service untuk mendownload file secara background
- Implicit Intent
- Untuk mengaktikan komponen dari aplikasi lain. Misal : mengaktifkan dial phone pada aplikasi Telp, mengaktifkan driving direction pada Google Maps atau mengirimkan pesan via Gmail, sms atau aplikasi lainnya.
Ilustrasi
Ilustrasi bagaimana Intent mengaktifkan Activity pada aplikasi lain.
- Activity A membuat Intent untuk melakukan sebuah Action dengan data object yang ada.
- Sistem Android akan mencari aplikasi yang cocok Berdasarkan Intent filter
- Activity pada aplikasi yang cocok akan ditampilkan.
Baca lebih lanjut : http://developer.android.com/guide/components/intents-filters.html
Pengembangan Aplikasi Hitung Luas untuk Implementasi Activity pada Pengembangan Aplikasi Android
1. Buat Project dengan Start a new Android Studio Project
2. Lalu isikan Application
Name dengan Sample_Intent dan Company domain dengan nama yang kamu mau,
kemudian Klik Next dan Hingga Finish. Biarkan gradle menggenerate
project kita.
3.
Pada activity_main.xml (folder res/layout) silakan ketikan kode seperti
dibawah ini, untuk menghasilkan layout. Anda bisa membuat layout dengan
sistem drag-n-drop apabila dikehendaki.
app\src\main\res\layout\activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_activity_sub_1"
android:text="Ke Activity Sub 1"
android:layout_marginBottom="8dp"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_activity_sub_2"
android:text="Ke Activity Sub 2"
android:layout_marginBottom="8dp"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_activity_dial"
android:text="Ke Activity Dial"
android:layout_marginBottom="8dp"/>
</LinearLayout>
4. Membuat Activity baru dengan cara pada Package utama (bukan yang ada AndroidTest)
silakan klik kanan – New – Activity – Blank Activity seperti dibawah ini
Lalu beri Nama Sub1Activity
5. Edit Sub1Activity pada berkas activity_sub1.xml (folder res/layout), sebagai berikut:
app\src\main\res\layout\activity_sub1.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.nbs.app.sampleintent.Sub1Activity">
<TextView android:text="Halo Ini Sub Activity 1" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
Pada Sub1Activity, hanya menampilkan teks dan tidak mengharapkan data masukan apapun.
6. Ulangi langkah nomor 4 untuk membuat Sub2Activity, dan Edit pada
berkas activity_sub2.xml (folder res/layout), sebagai berikut:
app\src\main\res\layout\activity_sub2.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.nbs.app.sampleintent.Sub2Activity">
<TextView android:text="Data yang dikirim" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txt_data"/>
</RelativeLayout>
Pada Sub2Activity, teks yang ditampikan akan berasal dari
masukan/kiriman activity sebelumnya. Untuk itu kita juga perlu mengedit
file Sub2Activity.java untuk memastikan data diterima dengan benar.
package com.nbs.app.sampleintent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class Sub2Activity extends ActionBarActivity {
public static String KEY_DATA = "data";
private String receivedData = null;
private TextView txtData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub2);
txtData = (TextView)findViewById(R.id.txt_data);
receivedData = getIntent().getStringExtra(KEY_DATA);
txtData.setText(receivedData);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_sub2, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
7. Edit MainActivity.java untuk implementasi perpindahan Activity dengan
atau tanpa data atau mengaktifkan aplikasi lain. Dalam case ini adalah
dial phone.
package com.nbs.app.sampleintent;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
public class MainActivity extends ActionBarActivity {
private Button btnSub1, btnSub2, btnDial;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSub1 = (Button)findViewById(R.id.btn_activity_sub_1);
btnSub2 = (Button)findViewById(R.id.btn_activity_sub_2);
btnDial = (Button)findViewById(R.id.btn_activity_dial);
btnSub1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Sub1Activity.class);
startActivity(intent);
}
});
btnSub2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Sub2Activity.class);
intent.putExtra(Sub2Activity.KEY_DATA, "Training Aplikasi Android");
startActivityForResult(intent, 0);
}
});
btnDial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:082121212093"));
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Silakan Run dengan tombol Run ke emulator atau device atau export ke
apk untuk instal secara manual di device. Tampilan hasil apps adalah
sebagai berikut.
Kiri atas : Tampilan Aplikasi ketika dibuka
Kanan Atas : Tampilan Aplikasi ketika diklik SubActivity1
Kiri Bawah : Tampilan Aplikasi ketika diklik SubActivity2
Kanan Bawah : Tampilan Aplikasi ketika diklik Dialer, membuka dialer yang ditunjuk (Misalnya Hangout Dialer)
Kanan Atas : Tampilan Aplikasi ketika diklik SubActivity1
Kiri Bawah : Tampilan Aplikasi ketika diklik SubActivity2
Kanan Bawah : Tampilan Aplikasi ketika diklik Dialer, membuka dialer yang ditunjuk (Misalnya Hangout Dialer)
Sample Code / Project diatas dapat diunduh disini
0 Komentar untuk "Membuat Aplikasi dengan Android Studio : Mengenal Intent"