Pada bab ini, kita akan membuat aplikasi sederhana menggunakan RadioButton. Skenarionya ada 5 buah RadioButton masing-masing diberi teks Horizontal, Vertical, Kanan, Tengah, dan Kiri. Jika salah satu RadioButton dipilih, maka susunan RadioButton akan berubah sesuai pilihannya.

Gambar 6.5. (a) Kombinasi tampilan secara vertivcal dengan rata kanan (b) kombinasi tampilan horizontal dengan center
Penasaran? Yuk, kita latihan..
1. Jalankan Enclipse, buat Project baru (gambar 6.3)

Gambar 6. 6
2. Isilah parameter seperti berikut
| Project name | RadioButton |
|------------------|--------------------------|
| Build Target | Android 2.2 |
| Application name | Menampilkan Radio Button |
| Package name | contoh.RadioButton |
| Create Activity | RadioButton |
| Min SDK version | 8 |
3. Kemudian ketikkan kode berikut ini pada main.xml (Gambar 6.4)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical">
<RadioGroup android:padding="5px"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/orientation"
android:orientation="horizontal">
<RadioButton android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/horizontal"
android:text="Horizontal">
</RadioButton>
<RadioButton android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/vertical"
android:text="Vertical">
</RadioButton>
</RadioGroup>
<RadioGroup android:id="@+id/gravity"
android:orientation="vertical"
android:padding="5px"
android:layout_width="fill parent"
android:layout_height="wrap content">
<RadioButton
android:id="@+id/kanan"
android:text="Kanan">
</RadioButton>
<RadioButton
android:id="@+id/kiri"
android:text="Kiri">
</RadioButton>
<RadioButton
android:id="@+id/tengah"
android:text="Tengah">
</RadioButton>
</RadioGroup>
</LinearLayout>

Gambar 6. 1. Letak layout main.xml dalam package
4. Ketiklah kode RadioButton.java seperti berikut (Gambar 6.5)
package contoh.radioButton;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
public class radioButton extends Activity implements
RadioGroup.OnCheckedChangeListener {
/** Called when the activity is first created. */
RadioGroup orientation;
RadioGroup gravity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
orientation = (RadioGroup) findViewById(R.id.orientation);
orientation.setOnCheckedChangeListener(this);
gravity = (RadioGroup) findViewById(R.id.gravity);
gravity.setOnCheckedChangeListener(this);
}
public void onCheckedChanged(RadioGroup group,
int checkId) {
switch (checkId) {
case R.id.horizontal:
orientation.setOrientation(LinearLayout.HORIZONTAL);
break;
case R.id.vertical:
orientation.setOrientation(LinearLayout.VERTICAL);
break;
case R.id.kiri:
gravity.setGravity(Gravity.LEFT);
break;
case R.id.tengah:
gravity.setGravity(Gravity.CENTER);
break;
case R.id.kanan:
gravity.setGravity(Gravity.RIGHT);
break;
}
}
}

Gambar 6. 2. Activity radioButton.java dalam package
5. Bila kode berantakan, lakukan Format (source > format).
6. Lakukan RUN dan lihat hasilnya. Yah! Sangat mudah.
Penjelasan Program
Kita mulai dari layout main.xml. RadioGroup berbeda dengan RadioButton. RadioGroup adalah kumpulan beberapa RadioButton. Dalam layout ini, kita mempunyai 2 buah RadioGroup
- Baris 7-22 : RadioGroup pertama dengan id "orientation". Memiliki 2 radioButton masing-masing ber-id "Horizontal" dan "vertical".
- Baris 23-40: RadioGroup kedua dengan id "gravity. Mempunyai 3 radioButton masing-masing ber-id "left","center","right".
Sekarang kita pindah ke activity radioButton. Activity ini mengimplementasikan class RadioGroup.OnCheckedChangeListener, agar supaya sistem dapat mengetahui bahwa ada radioButton yang diklik. Untuk memudahkan pemahaman, saya bagi menjadi 3 bagian
- Baris 13-14 😃eklarasi object RadioGroup dan RadioButton
- Baris 21-24 :Sinkronisasi object yang sudah di deklarasikan terhadap widget pada main.xml, sekaligus mengaktifkan radioButton agar berfungsi saat diklik.
- Baris 28-47 :fungsi yang akan dieksekusi jika salah satu radioButton diklik
Selain melalui xml, ada cara lain untuk menentukan orientasi sebuah layout, yakni melalui method setOrientation() seperti pada Baris 32 dan 35. Begitu juga dengan gravity sebuah object, bisa juga diatur dari java melalui method setGravity().
Sumber
omayib.com