2015-05-10 21 views
0

如何从单选按钮计数得分?从RadioButton计数得分

我有radio1,radio7,radio8,radio14。存储在不同radioGroup中的每个单选按钮,radioGroup1中的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; 

这是我的switch叙述(汝来在印尼分):

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&apos;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&apos;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&apos;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&apos;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> 

+1

我不明白你的问题,确实每个选定的“kunci”给你25分? –

+0

是的,每个选定的kunci给予25分 –

+0

你的英语很不错。你给你所有的代码。我仍然不明白你在做什么。你想如何计算分数? –

回答

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) + ...) 
+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 ; 
+0

将它标记为接受,如果它工作。 – UtsavShah