2017-08-17 30 views
1

我目前正在開發基於問卷的應用程序,其中有選項。我需要爲每個單選按鈕分配數值,所以當選擇其中一個時,它會給出一定數量的點,然後用它來產生累積量。我需要幫助編寫java來做到這一點。任何幫助將不勝感激。謝謝!爲選定的每個單選按鈕指定點

int score = 0; 
public TextView tv; 

public void onRadioButtonClicked(View view) { 
    boolean checked = ((RadioButton) view).isChecked(); 

    switch (view.getID()) { 
     case R.id.radioButton1: 
      if(checked) 
       score +=1; 
      break; 

     case R.id.radioButton2: 
      if(checked) 
       score +=1; 
      break; 

     case R.id.radioButton3: 
      if(checked) 
       score +=3; 
      break; 
    } 
} 

public void updateScore(int score) { 
    tv = (TextView)findViewById(R.id.textview1); 
    tv.setText(" " + score); 
} 

在XML我已經編碼爲「0」,一個TextView和@+id/textview1

問題文本ID是將比分保持在0,即使任何單選按鈕選擇

+0

您是否嘗試過什麼來實現這個的? –

+0

@AjilO。我嘗試使用 int score = 0 boolean(checked)=(RadioButton)view)。器isChecked(); switch(view.getId()){case R.id.radioButton;如果(選中)得分+ = 1; – Ashraf

+0

添加代碼以顯示您到目前爲止所嘗試的內容,以及結果與您所需/期望的不同之處。 –

回答

0

製作下面的代碼修改

public TextView tv; 
int score = 0; 

public void onRadioButtonClicked(View view) { 
    boolean checked = ((RadioButton) view).isChecked(); 

    switch (view.getId()) { 
     case R.id.radioButton1: 
      if (checked) { 
       score += 1; 
      } 
      break; 

     case R.id.radioButton2: 
      if(checked) 
       score +=1; 
      break; 

     case R.id.radioButton3: 
      if(checked) 
       score +=3; 
      break; 
    } 
    updateScore(score); // <- Added this line here 
} 

public void updateScore(int score) { 
    // Don't initialise your view here. Take it to onCreate() 
    tv.setText(" " + score); 
} 

編輯

單選按鈕的XML與我在這裏的內容相似嗎?

<RadioButton 
    android:id="@+id/radioButton1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="asas" 
    android:onClick="onRadioButtonClicked"/> 

確保您已在android:onClick="onRadioButtonClicked"屬性添加到每個單選按鈕

+0

以及我做了完全相同的事情,但分數仍然爲0.當我嘗試將onclick方法添加到每個單選按鈕時,它不允許我點擊它和我的應用程序崩潰在我的手機上。但是當我嘗試將onclick屬性添加到radiogroup時,應用程序不會崩潰,我可以選擇一個單選按鈕。 – Ashraf