Reputation: 49
How to count score from radiobutton ?
I've radio1, radio7, radio8, radio14. Each radiobutton stored in different radioGroup, radio1 in radioGroup1, radio7 in radioGroup2, radio8 in radioGroup3. I tried using if statement but not efficient, I tried using switch statement but cant count my score
It's my if statement :
RadioButton kunci1 = (RadioButton) findViewById(R.id.radio1);
RadioButton kunci2 = (RadioButton) findViewById(R.id.radio7);
RadioButton kunci3 = (RadioButton) findViewById(R.id.radio8);
RadioButton kunci4 = (RadioButton) findViewById(R.id.radio14);
int score=0;
if (kunci.isChecked() && kunci2.isChecked() && kunci3.isChecked() && kunci4.isChecked()){
score = 100;
} else if ((kunci1.isChecked() && kunci2.isChecked() && kunci3.isChecked())......)
score=75;
It's my switch statment (nilai is score in indonesian) :
int nilai=25;
switch(nilai) {
case R.id.radio1:
if (kunci1.isChecked())
nilai++;
case R.id.radio7:
if (kunci2.isChecked())
nilai++;
case R.id.radio8:
if (kunci3.isChecked())
nilai++;
case R.id.radio14:
if (kunci4.isChecked())
nilai++;
default :
break;
}
It's my layout :
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="504dp"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="17dp"
android:layout_marginTop="18dp"
android:text="1. Can't fetch from server" />
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1" >
<RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="A. ITB" />
<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B. IPB" />
<RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C. UPB" />
<RadioButton
android:id="@+id/radio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C. IPI" />
</RadioGroup>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/radioGroup1"
android:layout_below="@+id/radioGroup1"
android:layout_marginTop="22dp"
android:text="2. Can't fetch from server" />
<RadioGroup
android:id="@+id/radioGroup2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_below="@+id/textView2" >
<RadioButton
android:id="@+id/radio4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="A. Institut Pertanian Bandung" />
<RadioButton
android:id="@+id/radio5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B. Institut Pertanian Bali" />
<RadioButton
android:id="@+id/radio6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C. Institut Perbankan Bogor" />
<RadioButton
android:id="@+id/radio7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D. Institut Pertanian Bogor" />
</RadioGroup>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/radioGroup2"
android:layout_below="@+id/radioGroup2"
android:layout_marginTop="20dp"
android:text="3. Can't fetch from server" />
<RadioGroup
android:id="@+id/radioGroup3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView3"
android:layout_below="@+id/textView3" >
<RadioButton
android:id="@+id/radio8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="A. Laksmi Irianti" />
<RadioButton
android:id="@+id/radio9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B. Henni" />
<RadioButton
android:id="@+id/radio10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C. Yeni" />
<RadioButton
android:id="@+id/radio11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D. Inna Novianti" />
</RadioGroup>
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/radioGroup3"
android:layout_below="@+id/radioGroup3"
android:layout_marginTop="20dp"
android:text="4. Can't fetch from server" />
<RadioGroup
android:id="@+id/radioGroup4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView4"
android:layout_below="@+id/textView4" >
<RadioButton
android:id="@+id/radio12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="A. Komunikasi" />
<RadioButton
android:id="@+id/radio13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B. PPP" />
<RadioButton
android:id="@+id/radio14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C. Tekom" />
<RadioButton
android:id="@+id/radio15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D. PKS" />
</RadioGroup>
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/radioGroup4"
android:text="Submit"
android:onClick="submit"/>
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="Timer" />
</RelativeLayout>
Upvotes: 0
Views: 1232
Reputation: 4111
Your problem is easier than you think, you just need a couple of sequential independent if statements (or a ternary operator of-course) to update your score e.g.
int score=0;
if (kunci1.isChecked()) score += 25;
if (kunci2.isChecked()) score += 25;
if (kunci3.isChecked()) score += 25;
if (kunci4.isChecked()) score += 25;
//...
or for one-liner
int score = 25 * ((kunci1.isChecked() ? 1 : 0) + (kunci2.isChecked() ? 1 : 0) + ...)
Upvotes: 1
Reputation: 877
You can do something like maintain an array of radio buttons and iterate through them.
ArrayList<RadioButton> buttons = new ArrayList<>();
buttons.add((RadioButton) findViewById(R.id.radio1));
buttons.add((RadioButton) findViewById(R.id.radio7));
buttons.add((RadioButton) findViewById(R.id.radio8));
buttons.add((RadioButton) findViewById(R.id.radio14));
for(RadioButton button : buttons){
if (button.isChecked()){
nilai+= 25;
}
}
If you still want to keep your original buttons, then you can use the ternary operator, but it will be less readable:
nilai += kunci.isChecked() ? 25 : 0 + kunci2.isChecked() ? 25 : 0 +
kunci3.isChecked() ? 25 : 0 + kunci4.isChecked() ? 25 : 0 ;
Upvotes: 1