2015-05-10 18 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