[英]Reset Score - it doesn't go back to zero
我有一個“值”頁面,其中存儲了每個單選按鈕和復選框的得分。 在測驗的末尾,我有一個重置按鈕,測驗會重置,但是分數沒有。 單擊按鈕后,如何將分數重置為零? 任何幫助將不勝感激。
價值觀活動
public class Values {
private static Values instance;
private int QUESTIONS_COUNT = 39;
private int[] scores = new int[QUESTIONS_COUNT];
private Values(){
}
public static Values getInstance(){
if(instance == null){
instance = new Values();
}
return instance;
}
public int updateScore(int checkedId) {
switch(checkedId){
case R.id.checkBoxQ15MSh:
scores[34] = 5;
return scores[34];
case R.id.checkBoxQ15MSi:
scores[35] = 5;
return scores[35];
case R.id.checkBoxQ15MSj:
scores[36] = 5;
return scores[36];
case R.id.checkBoxQ15MSk:
scores[37] = 5;
return scores[37];
case R.id.checkBoxQ15MSl:
scores[38] = 5;
return scores[38];
case R.id.checkBoxQ15MSm:
scores[39] = 5;
return scores[39];
}
return 0;
}
public int totalScore() {
int totalScore = 0;
for (int score : scores) {
totalScore += score;
}
return totalScore;
}
}
這是帶有測驗和重置按鈕的片段
CBS23.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int totalScore = Values.getInstance().updateScore(CBS23.getId());
if (CBS23.isChecked()) {
score = score + totalScore;
} else if (!CBS23.isChecked()) {
score = score - totalScore;
tvS.setText(" " + score);
}
}
});
CBS24.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int totalScore = Values.getInstance().updateScore(CBS24.getId());
if (CBS24.isChecked()) {
score = score + totalScore;
} else if (!CBS24.isChecked()) {
score = score - totalScore;
tvS.setText(" " + score);
}
}
});
CBS25.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int totalScore = Values.getInstance().updateScore(CBS25.getId());
if (CBS25.isChecked()) {
score = score + totalScore;
} else if (!CBS25.isChecked()) {
score = score - totalScore;
tvS.setText(" " + score);
}
}
});
CBS26.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int totalScore = Values.getInstance().updateScore(CBS26.getId());
if (CBS26.isChecked()) {
score = score + totalScore;
} else if (!CBS26.isChecked()) {
score = score - totalScore;
tvS.setText(" " + score);
}
}
});
CBS27.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int totalScore = Values.getInstance().updateScore(CBS27.getId());
if (CBS27.isChecked()) {
score = score + totalScore;
} else if (!CBS27.isChecked()) {
score = score -totalScore;
tvS.setText(" " + score);
}
}
});
CBS28.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int totalScore = Values.getInstance().updateScore(CBS28.getId());
if (CBS28.isChecked()) {
score = score + totalScore;
} else if (!CBS28.isChecked()) {
score = score - totalScore;
tvS.setText(" " + score);
}
}
});
btnrestartS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(),MainActivity.class);
startActivity(intent);
getActivity().finish();
}
});
只需將btnrestartS.setOnClickListener(new View.OnClickListener()
onclick
下的score
重置為0
就像是:
score = 0;
for (int i=0;i<scores.length;i++ ) {
scores[i]=0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.