scalafx.application.Platform.runLater()
一个复选框用于多个答案,单选按钮用于仅包含一个答案的问题和一个自由文本框。应当在通过if / else语句进行计算的最后添加总和。 我创建了一个应该提交测试的按钮,但是没有添加所有答案来显示分数,而是仅将值增加了一个。
我是否可以指向任何资源以了解为什么会发生这种情况?
I am working on a quiz app that requires four questions,
答案 0 :(得分:0)
看到您的代码,您便对测验问题进行了硬编码。不建议这样做。 无论如何解决您的问题,都有两种方法可以得到总分。 1.取一个字段变量,并为每个选择的答案更新它,并在单击按钮时显示它。 2.存储在共享的首选项中并显示总值。
答案 1 :(得分:0)
无关但重要。您不需要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">
将属于同一问题的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>
请勿在xml内部使用onClick(不建议使用),而应在活动内的Button上使用setOnClickListner()
。
代替第一个问题的复选框,只需使用另一个RadioGroup。
现在在提交按钮的onClick方法中,检查每个RadioGroup的选定项目ID,并检查其是否正确。如果是1,则得分。并使用EditText中的getText并检查其是否正确,然后在文本视图中显示分数。
RadioGroup rg = findViewById(R.id.q1_radio_group);
if (rg.getCheckedRadioButtonId() == R.id.hagrid){
// add to score
}