我正在为10个问题制作一款适用于Android的Quizz应用程序,所有这些应用程序都带有4个单选按钮,最后一个按钮用于显示分数。问题是,当我选择正确答案时,它会给出5分,但如果我检查另一个单选按钮,则分数将保持为5,如果我再次按下它,则总和5.对此进行编码的最佳方法是什么?
以下是代码:
package com.example.android.quizproject;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.RadioButton;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
int points = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void firstRadioButtons (View view){
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId()) {
case R.id.questionOneA:
if (checked)
points += 0;
break;
case R.id.questionOneB:
if (checked)
points += 0;
break;
case R.id.questionOneC:
if (checked)
points += 5;
break;
case R.id.questionOneD:
if (checked)
points += 0;
break;
}
}
public void showScore (View view) {
TextView scoreTextView = (TextView) findViewById(R.id.score);
scoreTextView.setText(" " + points);
}
}
答案 0 :(得分:0)
您可以使用计数器变量来检查问题是否已被回答。将部分代码修改为
public void firstRadioButtons (View view){
boolean checked = ((RadioButton) view).isChecked();
int count=0;
switch (view.getId()) {
case R.id.questionOneA:
if (checked)
{
if(count!=0){
points-=5;
count=0;
}
}
break;
case R.id.questionOneB:
if (checked)
{
if(count!=0){
points-=5;
count=0;
}
}
break;
case R.id.questionOneC:
if (checked){
points += 5;
count+=1;}
break;
case R.id.questionOneD:
if (checked)
{
if(count!=0){
points-=5;
count=0;
}
}
break;
}
}
答案 1 :(得分:0)
实际上,你描述它的方式,它的常识。如果你单击一次正确的答案,它会将它设置为5,但如果你按任何其他答案,它将添加0。
一般情况下,它会打印出5,因为你得到的答案一次正确,其他问题设置为0.这里真的没有什么可以解决的,这是你的常识变量不会读取5.除了Abhriya说,你可以像(她/他)的例子中那样添加一个计数器增量值。