我的评分逻辑存在问题,似乎无法将整数值限制为十,并且不确定为什么我的逻辑会累加到奇怪的值等等。
XML文件
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:id="@+id/custom_toast"
android:background="#e7e7e7">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/question1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Question 1: What kind of noodles are used in pho?"
android:textSize="16sp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
/>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton android:id="@+id/radio_spaghetti"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Spaghetti"
android:onClick="firstRadioButtons"/>
<RadioButton android:id="@+id/radio_udon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Udon"
android:onClick="firstRadioButtons"/>
<RadioButton android:id="@+id/radio_rice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rice Noodles"
android:onClick="firstRadioButtons"/>
</RadioGroup>
<TextView
android:id="@+id/question2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Question 2: What country did pho originate from?"
android:textSize="16sp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
/>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton android:id="@+id/radio_vietnam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Vietnam"
android:onClick="secondRadioButtons"/>
<RadioButton android:id="@+id/radio_japan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Japan"
android:onClick="secondRadioButtons"/>
<RadioButton android:id="@+id/radio_australia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Australia"
android:onClick="secondRadioButtons"/>
</RadioGroup>
<TextView
android:id="@+id/question3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Question 3: What are some common vegetables in pho?"
android:textSize="16sp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
/>
<CheckBox android:id="@+id/checkbox_onion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Onions"
android:onClick="onCheckboxClicked"/>
<CheckBox android:id="@+id/checkbox_bean_sprouts"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bean Sprouts"
android:onClick="onCheckboxClicked"/>
<CheckBox android:id="@+id/checkbox_broccoli"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Broccoli"
android:onClick="onCheckboxClicked"/>
<CheckBox android:id="@+id/checkbox_spinach"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Spinach"
android:onClick="onCheckboxClicked"/>
<TextView
android:id="@+id/question4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Question 4: What is a spicy, chili sauce that can be added to pho?"
android:textSize="16sp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
/>
<EditText
android:id="@+id/text_input"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:inputType="text"
android:onClick="fillInTheBlank"/>
<TextView
android:id="@+id/question5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Question 5: Is pho considered a..."
android:textSize="16sp"
android:layout_marginBottom="15dp"
/>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton android:id="@+id/radio_soup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Soup"
android:onClick="lastRadioButtons"/>
<RadioButton android:id="@+id/radio_sandwich"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sandwich"
android:onClick="lastRadioButtons"/>
<RadioButton android:id="@+id/radio_dessert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dessert"
android:onClick="lastRadioButtons"/>
</RadioGroup>
<Button
android:id="@+id/toast_results"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginLeft="22dp"
android:layout_marginRight="22dp"
android:fontFamily="monospace"
android:textSize="20sp"
android:onClick="finalScore"
android:text="Are you pho-real, or not?" />
<Button
android:id="@+id/reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_gravity="center"
android:fontFamily="monospace"
android:textSize="10sp"
android:onClick="resetScore"
android:text="Reset Score" />
Java文件
package com.example.android.quizapp;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;
import org.w3c.dom.Text;
public class MainActivity extends AppCompatActivity {
int points = 0;
Button button;
Text message;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.toast_results);
}
//Question one
public void firstRadioButtons(View view) {
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId()) {
case R.id.radio_spaghetti:
if (checked)
points += 0;
case R.id.radio_udon:
if (checked)
points += 0;
case R.id.radio_rice:
if (checked)
points += 2;
}
}
//Question two
public void secondRadioButtons(View view) {
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId()) {
case R.id.radio_vietnam:
if (checked)
points += 2;
case R.id.radio_japan:
if (checked)
points += 0;
case R.id.radio_australia:
if (checked)
points += 0;
}
}
//Question three
public void onCheckboxClicked(View view) {
CheckBox cb1 = findViewById(R.id.checkbox_onion);
CheckBox cb2 = findViewById(R.id.checkbox_bean_sprouts);
CheckBox cb3 = findViewById(R.id.checkbox_broccoli);
CheckBox cb4 = findViewById(R.id.checkbox_spinach);
if (cb1.isChecked() && cb2.isChecked()) {
points += 2.0;
} else if (cb1.isChecked() && cb3.isChecked()) {
points += 1;
} else if (cb1.isChecked() && cb4.isChecked()) {
points += 1;
} else if (cb2.isChecked() && cb3.isChecked()) {
points += 1;
} else if (cb2.isChecked() && cb4.isChecked()) {
points += 1;
} else if (cb3.isChecked() && cb4.isChecked()) {
points += 0;
}
}
//Question Five
public void lastRadioButtons(View view) {
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId()) {
case R.id.radio_soup:
if (checked)
points += 2;
case R.id.radio_sandwich:
if (checked)
points += 0;
case R.id.radio_dessert:
if (checked)
points += 0;
}
}
//Calculate final Score and display
public void finalScore(View view) {
String q4 = "Sriracha";
EditText questionFive = (EditText) findViewById(R.id.text_input);
String questionFiveAnswer = questionFive.getText().toString();
if (questionFiveAnswer.equalsIgnoreCase(q4)) {
points += 2;
}
Toast.makeText(MainActivity.this, points + " out of 10 ",
Toast.LENGTH_LONG).show();
{
String message = points + " out of 10 ";
if (points == 2) {
message += "Pho? No.";
} else if (points == 4) {
message += "Ok, so you've had it once";
} else if (points == 6) {
message += "You're getting there! ";
} else if (points == 7) {
message += "Almost Pho-lly there!";
} else if (points == 8) {
message += "Pho-real! You're great!";
} else if (points == 10) {
message += "Pho-tastic!! Expert!";
}
}
}
// Reset the quiz score
public void resetScore (View view){
points = 0;
}
我知道这可能过于复杂而且太长了,但我是一个初学者,让我有些松懈!它运行良好,但我不知道我哪里出错或者我可以寻找什么来使它更准确地运行更准确的逻辑。