我正在开发一个测验应用。 应用程序中有5个问题。 每个问题有4个选项。 对于我使用无线电组的每个问题。 到目前为止,我只能在选中正确答案单选按钮时显示每个正确答案的Toast消息。 我想在单击提交按钮后在Toast消息中显示测验结果。 我已经提到了我想要显示的java代码中的要点。它们位于submitQuiz方法中。 下面,我提供了我的应用程序代码。
XML代码:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.infinitystone.mani.quiz.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:gravity="center_horizontal"
android:text="General Knowledge Quiz"
android:textAllCaps="true"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="italic" />
<EditText
android:id="@+id/name_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="8dp"
android:hint="Enter Your Name"
android:inputType="textCapWords" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="8dp"
android:text="Question 1:"
android:textAllCaps="true"
android:textColor="@android:color/black" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="8dp"
android:text="@string/question_1"
android:textColor="@android:color/background_dark" />
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="8dp"
android:orientation="vertical">
<RadioButton
android:id="@+id/radio_answer_1a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_1a" />
<RadioButton
android:id="@+id/radio_answer_1b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_1b" />
<RadioButton
android:id="@+id/radio_answer_1c"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_1c" />
<RadioButton
android:id="@+id/radio_answer_1d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_1d" />
</RadioGroup>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="152dp"
android:layout_marginTop="8dp"
android:background="@android:color/black">
</View>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="8dp"
android:text="Question 2:"
android:textAllCaps="true"
android:textColor="@android:color/black" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="8dp"
android:text="@string/question_2"
android:textColor="@android:color/background_dark" />
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="8dp"
android:orientation="vertical">
<RadioButton
android:id="@+id/radio_answer_2a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_2a" />
<RadioButton
android:id="@+id/radio_answer_2b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_2b" />
<RadioButton
android:id="@+id/radio_answer_2c"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_2c" />
<RadioButton
android:id="@+id/radio_answer_2d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_2d" />
</RadioGroup>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="152dp"
android:layout_marginTop="8dp"
android:background="@android:color/black">
</View>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="8dp"
android:text="Question 3:"
android:textAllCaps="true"
android:textColor="@android:color/black" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="8dp"
android:text="@string/question_3"
android:textColor="@android:color/background_dark" />
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="8dp"
android:orientation="vertical">
<RadioButton
android:id="@+id/radio_answer_3a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_3a" />
<RadioButton
android:id="@+id/radio_answer_3b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_3b" />
<RadioButton
android:id="@+id/radio_answer_3c"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_3c" />
<RadioButton
android:id="@+id/radio_answer_3d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_3d" />
</RadioGroup>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="152dp"
android:layout_marginTop="8dp"
android:background="@android:color/black">
</View>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="8dp"
android:text="Question 4:"
android:textAllCaps="true"
android:textColor="@android:color/black" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="8dp"
android:text="@string/question_4"
android:textColor="@android:color/background_dark" />
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="8dp"
android:orientation="vertical">
<RadioButton
android:id="@+id/radio_answer_4a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_4a" />
<RadioButton
android:id="@+id/radio_answer_4b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_4b" />
<RadioButton
android:id="@+id/radio_answer_4c"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_4c" />
<RadioButton
android:id="@+id/radio_answer_4d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_4d" />
</RadioGroup>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="152dp"
android:layout_marginTop="8dp"
android:background="@android:color/black">
</View>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="8dp"
android:text="Question 5:"
android:textAllCaps="true"
android:textColor="@android:color/black" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="8dp"
android:text="@string/question_5"
android:textColor="@android:color/background_dark" />
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="8dp"
android:orientation="vertical">
<RadioButton
android:id="@+id/radio_answer_5a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_5a" />
<RadioButton
android:id="@+id/radio_answer_5b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_5b" />
<RadioButton
android:id="@+id/radio_answer_5c"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_5c" />
<RadioButton
android:id="@+id/radio_answer_5d"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="radioGroup"
android:paddingLeft="8dp"
android:text="@string/answer_5d" />
</RadioGroup>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="152dp"
android:layout_marginTop="8dp"
android:background="@android:color/black">
</View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="16dp"
android:layout_marginRight="8dp"
android:layout_weight="1"
android:onClick="submitQuiz"
android:text="Submit"
android:textAllCaps="true" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="8dp"
android:layout_marginRight="16dp"
android:layout_weight="1"
android:onClick="resetQuiz"
android:text="Reset"
android:textAllCaps="true" />
</LinearLayout>
</LinearLayout>
</ScrollView>
Java代码:
package com.infinitystone.mani.quiz;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.RadioButton;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// This method is called when the radio button with correct answer is checked
public void radioGroup(View view) {
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId()) {
case R.id.radio_answer_1b:
if (checked) {
Toast.makeText(this, "Correct answer",
Toast.LENGTH_SHORT).show();
}
break;
case R.id.radio_answer_2a:
if (checked) {
Toast.makeText(this, "Correct answer",
Toast.LENGTH_SHORT).show();
}
break;
case R.id.radio_answer_3b:
if (checked) {
Toast.makeText(this, "Correct answer",
Toast.LENGTH_SHORT).show();
}
break;
case R.id.radio_answer_4a:
if (checked) {
Toast.makeText(this, "Correct answer",
Toast.LENGTH_SHORT).show();
}
break;
case R.id.radio_answer_5d:
if (checked) {
Toast.makeText(this, "Correct answer",
Toast.LENGTH_SHORT).show();
}
break;
}
}
// This method is called when the submit button is clicked
public void submitQuiz(View view){
/*
* I want to display the following details when the submit button is clicked
*
* Number of questions attempted
* Number of right answers
* Number of wrong answers
*
* All this summary in a toast message
* */
}
}
String.xml文件:
<resources>
<string name="app_name">Quiz</string>
<string name="question_1">Hitler party which came into power in 1933 is known as ?</string>
<string name="answer_1a">Labour Party</string>
<string name="answer_1b">Nazi Party</string>
<string name="answer_1c">Ku-Klux-Klan</string>
<string name="answer_1d">Democratic Party</string>
<!-- Correct answer: Nazi party -->
<string name="question_2">First human heart transplant operation conducted by Dr. Christiaan Barnard on Louis Washkansky, was conducted in which year ?</string>
<string name="answer_2a">1967</string>
<string name="answer_2b">1968</string>
<string name="answer_2c">1958</string>
<string name="answer_2d">1922</string>
<!-- Correct answer: 1967 -->
<string name="question_3">In which year Georgia, Uzbekistan and Turkmenistan became the members of UN ?</string>
<string name="answer_3a">1991</string>
<string name="answer_3b">1992</string>
<string name="answer_3c">1993</string>
<string name="answer_3d">1994</string>
<!-- Correct answer: 1992 -->
<string name="question_4">Escape velocity of a rocket fired from the earth towards the moon is a velocity to get rid of what ?</string>
<string name="answer_4a">Earth gravitational pull</string>
<string name="answer_4b">Moon gravitational pull</string>
<string name="answer_4c">Centripetal force due to the earth rotation</string>
<string name="answer_4d">Pressure of the atmosphere</string>
<!-- Correct answer: Earth gravitational pull -->
<string name="question_5">Which instrument is used for seeing objects at the surface of water from a submarine under water ?</string>
<string name="answer_5a">Kaleidoscope</string>
<string name="answer_5b">Spectroscope</string>
<string name="answer_5c">Telescope</string>
<string name="answer_5d">Periscope</string>
<!-- Correct answer: Periscope -->
</resources>
答案 0 :(得分:1)
由于您说在检查按钮时可以显示Toast消息,因此我假设您知道如何在代码中定义和查找视图。
您现在需要做的是声明一个Button变量并找到它的视图。您可以在onCreate()方法中执行此操作:
btn_submit = (Button) findViewByID(R.id.btn_submit)
其中btn_submit是您应在活动中定义的全局变量,因为您需要在其他方法中访问它。顺便说一句,你没有在你的R.layout.activity_main.xml中为Buttons指定id,你应该(我认为它是btn_sumbit,你应该根据你的命名改变查找视图代码)。
现在您需要做的是听取按钮点击操作。因此,在找到Button的视图后,您需要为它提供一个onClickListener。您可以通过以下方式执行此操作:
btn_submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
submitQuiz();
}
});
现在按钮将侦听click事件,并在单击时调用submitQuiz()方法。
此外,您应该声明全局变量并查找每个RadioGroup的视图。这样您就可以在submitQuiz()方法中使用它们。现在您可以使用以下代码来执行评分逻辑:
switch ( rg_question1.getCheckedRadioButtonId() ) {
case R.id.answer_1a:
// wrong
break;
case R.id.rb_answer_1b:
// correct
correctCount++;
correctQustionList.add("qustion1");
break;
case ...
}
最后,显示toast消息。我相信你知道怎么做这个部分。