首页 > 解决方案 > 测验应用 Android Studio 的评分逻辑存在问题

问题描述

我的评分逻辑有问题,似乎无法将整数值限制为 10,也不确定为什么我的逻辑会加起来奇怪的值等。

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;
}

我知道这可能过于复杂且太长了,但我是初学者,请放慢我的脚步!它运行良好,但我只是不知道我哪里出错了,或者我可以寻找什么来使它运行得更流畅,逻辑更准确。

标签: javaandroidlogic

解决方案


推荐阅读