在android测验android studio中显示最终分数

时间:2018-09-22 02:11:02

标签: android

scalafx.application.Platform.runLater()

一个复选框用于多个答案,单选按钮用于仅包含一个答案的问题和一个自由文本框。应当在通过if / else语句进行计算的最后添加总和。 我创建了一个应该提交测试的按钮,但是没有添加所有答案来显示分数,而是仅将值增加了一个。

我是否可以指向任何资源以了解为什么会发生这种情况?

        I am working on a quiz app that requires four questions, 

2 个答案:

答案 0 :(得分:0)

看到您的代码,您便对测验问题进行了硬编码。不建议这样做。 无论如何解决您的问题,都有两种方法可以得到总分。 1.取一个字段变量,并为每个选择的答案更新它,并在单击按钮时显示它。 2.存储在共享的首选项中并显示总值。

答案 1 :(得分:0)

  1. 无关但重要。您不需要RelativeLayout,也不需要那些巨大的边距并从所有子视图中删除xmlns:android="http://schemas.android.com/apk/res/android"(您只需要在根视图中使用它,在此示例中为ScrollView)。还要将该RelativeLayout更改为具有垂直方向的LinearLayout并从视图中删除所有边距。并且由于您在活动中有一个EditText(如果您不希望它默认获得焦点)(它将打开键盘),因此您需要将rootview的focusable和focusableInTouchMode设置为true(尽管在ScrollView上不起作用)所以我将其放在LinearLayout中。):

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:focusable="true"
        android:focusableInTouchMode="true">
    
  2. 将属于同一问题的RadioButtons放入RadioGroup内,这样可以同时选择一个按钮,例如:

    <RadioGroup
        android:id="@+id/q1_radio_group"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <RadioButton
            android:id="@+id/hagrid"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="hagrid"
            android:textAppearance="?android:textAppearanceMedium"
            android:textSize="20sp" />
    
        <RadioButton
            android:id="@+id/snape"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="snape"
            android:textAppearance="?android:textAppearanceMedium"
            android:textSize="20sp" />
    
    </RadioGroup>
    
  3. 请勿在xml内部使用onClick(不建议使用),而应在活动内的Button上使用setOnClickListner()

  4. 代替第一个问题的复选框,只需使用另一个RadioGroup。

  5. 现在在提交按钮的onClick方法中,检查每个RadioGroup的选定项目ID,并检查其是否正确。如果是1,则得分。并使用EditText中的getText并检查其是否正确,然后在文本视图中显示分数。

    RadioGroup rg = findViewById(R.id.q1_radio_group);
    if (rg.getCheckedRadioButtonId() == R.id.hagrid){
        // add to score
    }