如何计算radiobutton的得分?
我有radio1,radio7,radio8,radio14。每个radiobutton存储在不同的radioGroup,radio1中的radio1,radioGroup2中的radio7,radioGroup3中的radio8。 我尝试使用if语句但效率不高,我尝试使用switch语句但不能计算我的分数
这是我的if声明:
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;
这是我的开关声明(nilai是印尼语分数):
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;
}
这是我的布局:
<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>
答案 0 :(得分:1)
你可以做一些事情,比如维护一组单选按钮并迭代它们。
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;
}
}
如果您仍想保留原始按钮,则可以使用三元运算符,但它的可读性会降低:
nilai += kunci.isChecked() ? 25 : 0 + kunci2.isChecked() ? 25 : 0 +
kunci3.isChecked() ? 25 : 0 + kunci4.isChecked() ? 25 : 0 ;
答案 1 :(得分:1)
您的问题比您想象的要容易,您只需要几个连续的独立if语句(或者当然是三元运算符)来更新您的分数,例如
int score=0;
if (kunci1.isChecked()) score += 25;
if (kunci2.isChecked()) score += 25;
if (kunci3.isChecked()) score += 25;
if (kunci4.isChecked()) score += 25;
//...
或单线
int score = 25 * ((kunci1.isChecked() ? 1 : 0) + (kunci2.isChecked() ? 1 : 0) + ...)