[Pemrograman Android] Intent – Part 2

[Pemrograman Android] Intent – Part 2

Halo sahabat ajar belajar kembali lagi bersama saya Mini Tutor Agung , di konten kali ini kita akan meneruskan pembelajaran kita tentang intent, namun kali ini akan lebih short karena kita hanya akan membahas intent dengan method putExtra() lebih dalam, sudah siap ?

Saya yakin pasti sudah pada siap ya pastinya , di artikel intent part 1 kita hanya membahas perpidahan data dengan tipe data String. Jika kalian masih bingung dengan apa itu tipe data dan sebagainya, kalian bisa mengenal dasar – dasar pemrograman java terlebih dahulu khususnya konsep OOP (Object Oriented Programming) sebelum belajar membuat aplikasi android.

Oke untuk berpindah halaman dengan data kita menggunakan method putExtra() pada kelas intent. Nah pada method ini kita tidak hanya bisa mengirim data bertipe string, kita bisa lihat autocomplete di bawah ini dengan shortcut CTRL + SPACE atau Control + Space untuk penggunak Mac OS (kalau gk salah ya ) .

intent

Disini kita bisa melihat banyak tipe data yang bisa digunakan. Supaya lebih paham mari kita praktikan saja. Sekarang kita buka project pada intent part 1 di android studio kalian. Kemudian kalian buka kelas MainActivity.java lalu kita tambahkan kode program berikut pada method onCreate

<p style="text-align: left;">intentData.setVisibility(View.<strong><em>GONE</em></strong>);</p>

Sehingga kode program pada method onCreate menjadi seperti ini

<p style="text-align: left;">@Override
<strong>protected void </strong>onCreate(Bundle savedInstanceState) {
<strong>super</strong>.onCreate(savedInstanceState);
setContentView(R.layout.<strong><em>activity_main</em></strong>);</p>
<strong>intentWithData </strong>= (Button)findViewById(R.id.<strong><em>move_activity_with_data</em></strong>);
<strong>intentWithNoData </strong>= (Button)findViewById(R.id.<strong><em>move_activity_without_data</em></strong>);
<strong>intentData </strong>= (EditText)findViewById(R.id.<strong><em>text_intent</em></strong>);
<em>//menghilangkan EditText dari tampilan layout ketika program di jalankan
</em><strong>intentData</strong>.setVisibility(View.<strong><em>GONE</em></strong>);

<strong>intentWithData</strong>.setOnClickListener(<strong>this</strong>);
<strong>intentWithNoData</strong>.setOnClickListener(<strong>this</strong>);
}

Setelah itu coba kita tambahkan kode program ini ke method onClick pada case R.id.move_activity_with_data:

<p style="text-align: left;">intent1.putExtra(ActivityWithData.<em>NAME</em>, <strong>"nama kalian disini"</strong>); <em>//tulis nama kalian
</em> intent1.putExtra(ActivityWithData.<em>AGE</em>, 17); <em>//tulis umur kalian</em></p>

Sehingga akan menjadi seperti ini

<p style="text-align: left;">@Override
<strong>public void </strong>onClick(View v) {
<strong>switch </strong>(v.getId()){
<strong>case </strong>R.id.<strong><em>move_activity_with_data</em></strong>:
<em>//simpan data pada editext ke dalam variable string
</em>String data = <strong>intentData</strong>.getText().toString().trim();
<em>/*
Kita membuat suatu obyek Intent dengan memberikan
kelas Activity asal (MainActivity.this) dan kelas Activity tujuan (ActivityWithData.class)
pada konstruktor kelas Intent.
*/
</em>Intent intent1 = <strong>new </strong>Intent(MainActivity.<strong>this</strong>, ActivityWithData.<strong>class</strong>);
<em>//gunakan method putExtra untuk membawa data dari MainActivity ke ActivityWithData dengan kata kunci "move_data"
//kata kunci "move_data" ini akan kita gunakan pada kelas ActivityWithData untuk menampilkan data yang dibawa
</em>intent1.putExtra(ActivityWithData.<em>NAME</em>, <strong>"nama kalian disini"</strong>); <em>//tulis nama kalian
</em>intent1.putExtra(ActivityWithData.<em>AGE</em>, 17); <em>//tulis umur kalian
//lakukan proses intent
</em>startActivity(intent1);</p>
<strong>break</strong>;
<strong>case </strong>R.id.<strong><em>move_activity_without_data</em></strong>:
<em>/*
Kita membuat suatu obyek Intent dengan memberikan
kelas Activity asal (MainActivity.this) dan kelas Activity tujuan (ActivityWithNoData.class)
pada konstruktor kelas Intent.
*/
</em>Intent intent2 = <strong>new </strong>Intent(MainActivity.<strong>this</strong>, ActivityWithNoData.<strong>class</strong>);
<em>//lakukan proses intent
</em>startActivity(intent2);
<strong>break</strong>;
}
}

Kemudian kita tambahkan kode program berikut ini kedalam kelas ActivityWithData.java

<p style="text-align: left;"><strong>public class </strong>ActivityWithData <strong>extends </strong>AppCompatActivity {
<strong>public static </strong>String <em>NAME </em>= <strong>"move_data_string"</strong>;
<strong>public static </strong>String <em>AGE </em>= <strong>"move_data_integer"</strong>;</p>
<strong>private </strong>TextView <strong>showDataFromMainActivity</strong>;

@Override
<strong>protected void </strong>onCreate(Bundle savedInstanceState) {
<strong>super</strong>.onCreate(savedInstanceState);
setContentView(R.layout.<strong><em>activity_with_data</em></strong>);

<strong>showDataFromMainActivity </strong>= (TextView)findViewById(R.id.<strong><em>data</em></strong>);
<em>//tampilkan data dari MainActivity
</em><strong>showDataFromMainActivity</strong>.setText(<strong>"Nama : " </strong>+ getIntent().getStringExtra(<em>NAME</em>)
+ <strong>"\nUsia : " </strong>+ getIntent().getIntExtra(<em>AGE</em>,0 <em>/*Nilai default*/</em>));
}
}

Setelah kita mengganti kelas ActivityWithData.java dengan kode program diatas maka garis eror merah pada MainActivity akan hilang.

Nah sekarang coba kita run kode program ini kemudian klik button intent dengan data.

Pada artikel ini saya mencoba membuat deklarasi variable static pada kelas ActivityWithData supaya memudahkan kita mengingat key untuk pertukaran data dalam activity ini , di kelas MainActivity kita tinggal memanggil ActivityWithData.NAME untuk mengirim data nama atau ActivityWithData.AGE untuk mengirim data umur dan pada kelas ActivityWithData cukup menggunakan NAME atau AGE.

Untuk menerima data dari activity lain kita bisa menggunakan getIntent().getStringExtra(NAME) untuk data bertipe String atau getIntent().getIntExtra(AGE,0) untuk data bertipe Integer.

Disitu kita hanya perlu memasukkan key yang sama dengan MainActivity maka data akan diterima seperti yang dikirim dari MainActivity, dan angka 0 di method getIntExtra adalah parameter nilai default, kita bisa mengisinya dengan angka 0.

Selamat! Kalian telah mempelajari dua intent explicit dengan atau tanpa membawa data serta mencoba dua tipe data yang berbeda pada method PutExtra, yeeay …

Selanjutnya kita akan belajar intent dengan objek yaitu mengirim banyak tipe data hanya dengan satu objek , karena nantinya jika kita membuat aplikasi yang membutuhkan banyak data kita tidak mungkin membuat putExtra satu – satu tiap datanya , tidak efisien. So stay tune ya guys , see you …

Jangan lupa isi Feedback Konstruktifnya di bawah ini ya!

ID Konten : KT073

Feedback Konstruktif
*
*
*
*
*
*
*

Leave a Reply