Hari 2
Hari 2
Secara umum intent terbagi dua intent implicit dan explicit yaitu sebagai berikut :
1. Intent Explicit
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.
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.
2. Intent Implicit
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 :
Contoh Intent untuk mengirim email
Intent emailIntent = new Intent(android.content.Intent.
ACTION_SEND );
emailIntent.putExtra(android.content.Intent. EXTRA_EMAIL ,
emailList);
emailIntent.setType( "plain/text" );
emailIntent.putExtra(android.content.Intent. EXTRA_SUBJECT ,
Praktek 1.
Kita akan membuat satu aplikasi dimana ketika aplikasi itu di running kita harus inputkan
nama kita, dan nama itu akan di tangkap di activity lain setelah kita menekan tombol “OK”
Langkah – langkah membuatnya seperti berikut ini :
1. Buat Projek Baru
Nama Projek Hari ke 2
Sdk Api Min 14
//deklarasi variabel
EditText edtIntro;
Button btnIntro;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intro);
//inisialisasi id dari layout ada 2 widget
edtIntro = (EditText) findViewById(R.id.introId);
btnIntro = (Button) findViewById(R.id.btnIntro);
//buat kondisi
if (edt.isEmpty()){
edtIntro.setError("Data Tidak Bisa Kosong");
} else {
//implementasi intent, panggil kelas Intent, objek
intent
Intent kirimData = new Intent(IntroActivity.this,
MainActivity.class);
//mengirim data dengan key "nama"
kirimData.putExtra("nama", edt);
//setiap penggunaan intgent harus di pakai satar
activity
startActivity(kirimData);
//finish utk mengakhiri activity
finish();
}
}
});
}
}
disarankan tidak copy paste
Setelah itu coba jalankan aplikasinya, ketika data kita isi kosong, kondisi if itu akan bekerja
dimana ada pesan error “data tidak bisa kosong”.
Setelah kita buat Intronya sekrang kita buat activity baru di projek itu, nama dari activity itu
yaitu MainActivity, caranya sebagai berikut :
Ket :
a. Klik kanan pada package pertama dalam folder java
b. Pilih new > pilih activity
c. Pilih empty activity
3. Setelah itu pada MainActivity Kita buatkan 3 button dan kita tambahkan textview
untuk menangkap data nama yang di kirim dari IntroActivity.
Seperti gambar berikut :
3 Button itu akan kita buat event klik pada setiap button, tetapi sebelumnya perlu kita
ketahu lifecycle Activity, seperti pada gambar di bawah, perlu kita ketahui method
pada activity ketika activity itu di jalankan, seperti berikut ini penjelasanya :
a. onCreate
method ini di jalankan terlebih dahulu, untuk menjalankan semuat aktivitas
pada activity maka kita harus panggil pada method onCreate
b. onStart
method ini akan di jalankan setelah method onCreate yaitu di mulai di
jalankan apa saja activitas yang kita berikan di method onCreate
c. onResume
method ini akan di jalankan ketika kita berpindah activity atau keluar dari
activity itu.
d. onPause
method ini di jalankan setelah method onResume
e. onStop dan onDestroy
dua method ini di jalankan ketika kita telah close pada aplikasi
Sekarang kita coba pada activity MainActivity kita berikan method lifecyclenya, isikan
kode berikut ini pada MainActivty.java dan running program lihat aktitivasnya.
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this, "Ini Method OnCreate",
Toast.LENGTH_SHORT).show();
}
@Override
protected void onStart() {
super.onStart();
Toast.makeText(this, "Ini Method OnStart",
Toast.LENGTH_SHORT).show();
}
@Override
protected void onResume() {
super.onResume();
Toast.makeText(this, "Ini Method OnResume",
Toast.LENGTH_SHORT).show();
}
@Override
protected void onPause() {
super.onPause();
Toast.makeText(this, "Ini Method OnPause",
Toast.LENGTH_SHORT).show();
@Override
protected void onStop() {
super.onStop();
Toast.makeText(this, "Ini Method OnStop",
Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Ini Method OnDestroy",
Toast.LENGTH_SHORT).show();
}
}
disarankan untuk mengetik (nanti setiap mengetik 1 – 5 huruf akn muncul auto complete /
saran kode yang akan di gunakan, jada tidak perlu mengetik semuanya.
coba jalankan programnya dengan mengisi semuat method itu pada MainActivity,
<TextView
android:layout_weight="1"
android:textSize="25sp"
android:id="@+id/txtNama"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your Name"
/>
</LinearLayout>
<Button
android:id="@+id/btnToast"
android:text="Toast"
android:background="@android:color/holo_blue_bright"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnalert"
android:text="Alert Dialog"
android:background="@android:color/holo_blue_bright"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnHitungLuasActivity"
android:text="input Data"
android:background="@android:color/holo_blue_bright"
android:layout_margin="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
disarankan untuk mengetik
Setelah itu logicnya pada MainActivty kita tambahkan kode berikut ini :
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
Button btnToast;
Button btnInput;
Button btnalert;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
});
//jangan lupa alert di show
alert.show();
});
Di InputdataActivity kita akan memberikan 3 widget yaitu EditText untuk inputan, Button
untuk event klik dan TextView untuk menangakap apa yang di inputkan di EditText.
Pada layout activity_inputdata kita akan buat seperti gambar dibawah ini :
Isikan kode berikut ini pada layout activity_inputdata.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<EditText
android:gravity="top"
android:inputType="textMultiLine"
android:id="@+id/edtInputData"
android:hint="Input Data here"
android:layout_width="match_parent"
android:layout_height="150dp" />
<Button
android:layout_margin="20dp"
android:background="@color/colorPrimaryDark"
android:id="@+id/btnInputData"
android:text="input data"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/txtInputData"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
//deklarasi variebel
EditText edtInputData;
Button btnInputData;
TextView txtInputData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inputdata);
//inisialisasi
edtInputData = (EditText) findViewById(R.id.edtInputData);
txtInputData = (TextView)findViewById(R.id.txtInputData);
btnInputData = (Button) findViewById(R.id.btnInputData);
//berikan event pada button input data
btnInputData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//buat string unutk menangkap inputan dan mengubahnya ke
data String
String edtInput = edtInputData.getText().toString();
}
});
}
}
disarankan tidak copy paste
jika aplikasinya dijalankan seperti pada gambar-gambar dibawah ini :
Setelah mengikuti isi dari modul ini, sebagai bahan latihan coba membuat kakulator di
android dan proggramm menghitung luas / keliling persegi.
Contohnya seperti gambar berikut :
Semoga Apa yang di pelajari dari modul ini, bisa dipahami dengan benar.