Android: Enable/Disable Pada RadioGroup

Free Image Hosting at www.ImageShack.us

Kalau melihat judul, sepertinya hal yang sederhana. Tapi, setelah dicoba sendiri, ternyata butuh trik:D. Sebab, RadioGroup di android, sejadinya hanya View yang memiliki child berupa RadioButton.

Oleh sebab itu, untuk mengatur state disable/enabl-nya, perlu melakukan looping terhadap semua child yang ada. Untungnya, cara untuk melakukan hal tersebut juga masih cukup simple:

Disable RadioGroup

for(int i = 0; i < radioGroup1.getChildCount(); i++){
    ((RadioButton)radioGroup1.getChildAt(i)).setEnabled(false);
}

Enable RadioGroup

for(int i = 0; i < radioGroup1.getChildCount(); i++){
    ((RadioButton)radioGroup1.getChildAt(i)).setEnabled(true);
}

Tapi, kalau harus pakai kedua kode di atas, sesuai dengan kebutuhan untuk disable/enable, rasanya kok kurang elegan. Sebaiknya kita jadikan method saja untuk disimpan di class helper:

public static void setRadioGroupEnabled(RadioGroup rg, boolean state){
    for(int i = 0; i < rg.getChildCount(); i++){
        ((RadioButton)rg.getChildAt(i)).setEnabled(state);
    }
}

Lalu untuk penggunaannya, tinggal memanggil kode berikut:

setRadioGroupEnabled(radioGroup1, true);//enable RadioGroup
setRadioGroupEnabled(radioGroup1, false);//disable RadioGroup

Author: Arief Bayu Purwanto

Hello, my name is Arief Bayu Purwanto, a 24 years old father of a beautiful daughter. Interested in online programming, linux, games, and reading. Currently working on kapanlagi.com as junior developer. I live in a relatively quite and cool place called Malang. I'm available for some freelance stuff as well as some consulting job. You can see my portofolio for some previous task I've finished and some other information related to my capability. Btw, I'm plurking here.