簡體   English   中英

重置分數-它不會回到零

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM