Android APP编写简单答题器
作者:lijiao 时间:2021-05-29 13:00:17
本文为大家分享了Android APP编写的简单答题器,此答题器可以通过Next按钮选择下一题,新写题目的类Question,有两个成员变量。
java代码:
package com.android.testrecord;
/**
* Created by wang on 16-10-19.
*/
public class Question {
private int mTextResId;
private boolean mAnswerTrue;
public Question(int textResId, boolean answerTrue) {
mTextResId = textResId;
mAnswerTrue = answerTrue;
}
public int getTextResId() {
return mTextResId;
}
public boolean isAnswerTrue() {
return mAnswerTrue;
}
public void setTextResId(int textResId) {
mTextResId = textResId;
}
public void setAnswerTrue(boolean answerTrue) {
mAnswerTrue = answerTrue;
}
}
java代码:
package com.android.testrecord;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class QuizActivity extends AppCompatActivity {
private Button mTrueButton;
private Button mFalseButton;
private Button mNextButton;
private TextView mQuestionTextView;
private Question[] mQuestionBank = new Question[] {
new Question(R.string.question_oceans, true),
new Question(R.string.question_mideast, false),
new Question(R.string.question_africa, false),
new Question(R.string.question_americas,true),
new Question(R.string.question_asia, true),
};
private int mCurrentIndex = 0;
private void updateQuestion() {
int question = mQuestionBank[mCurrentIndex].getTextResId();
mQuestionTextView.setText(question);
}
private void checkAnswer(boolean userProessedTrue) {
boolean answerIsTrue = mQuestionBank[mCurrentIndex].isAnswerTrue();
int messageId = 0;
if (userProessedTrue == answerIsTrue)
messageId = R.string.correct_toast;
else
messageId = R.string.incorrect_toast;
Toast.makeText(this, messageId, Toast.LENGTH_SHORT).show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_quiz);
mQuestionTextView = (TextView) findViewById(R.id.question_test_view);
// int question = mQuestionBank[mCurrentIndex].getTextResId();
// mQuestionTextView.setText(question);
updateQuestion();
mTrueButton = (Button) findViewById(R.id.true_button);
mTrueButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Does nothing yet, but soon!
/* Toast.makeText(QuizActivity.this,
R.string.incorrect_toast,
Toast.LENGTH_SHORT).show(); */
checkAnswer(true);
}
});
mFalseButton = (Button) findViewById(R.id.false_button);
mFalseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Does nothing yet, but soon!
/* Toast.makeText(QuizActivity.this,
R.string.correct_toast,
Toast.LENGTH_SHORT).show(); */
checkAnswer(false);
}
});
mNextButton = (Button) findViewById(R.id.next_button);
mNextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length;
// int question = mQuestionBank[mCurrentIndex].getTextResId();
// mQuestionTextView.setText(question);
updateQuestion();
}
});
}
}
xml代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:id="@+id/question_test_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="24dp"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/true_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/true_button"/>
<Button
android:id="@+id/false_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/false_button"/>
</LinearLayout>
<Button
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/next_button"/>
</LinearLayout>
代码:
<resources>
<string name="app_name">GeoQuiz</string>
<string name="question_text">
Constantinople is the largest city in Turkey.
</string>
<string name="true_button">True</string>
<string name="false_button">False</string>
<string name="correct_toast">Correct!</string>
<string name="incorrect_toast">Incorrect!</string>
<string name="action_settings">Settings</string>
<string name="next_button">Next</string>
<string name="question_oceans">The Pacific Ocean is larger than the Atlantic Ocean.</string>
<string name="question_mideast">The Suez Canal connects the Red Sea and the Indian Ocean.</string>
<string name="question_africa">The source of the Nile River is in Egypt.</string>
<string name="question_americas">The Amazon River is the longest river in the Americas.</string>
<string name="question_asia">Lake Baikal is the world\'s oldest and deepest freshwater lake.</string>
</resources>
标签:Android,APP,答题器
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java简单计时的实现案例(可以用来限时循环)
2023-02-01 21:39:19
PipedWriter和PipedReader源码分析_动力节点Java学院整理
2022-03-13 19:40:16
Maven安装及MyEclipse中使用Maven
2023-06-20 04:29:07
![](https://img.aspxhome.com/file/2023/7/69307_0s.png)
c#中Linq to Sql 增删除的实例
2022-08-24 02:15:34
C#实现字体旋转的方法
2023-01-19 06:41:40
Spring Cloud Gateway 默认的filter功能和执行顺序介绍
2021-07-01 21:31:46
![](https://img.aspxhome.com/file/2023/0/85550_0s.png)
Java字符串常量池示例详解
2021-10-11 10:55:02
Android+Flutter实现文字跑马灯特效
2022-11-24 05:57:58
![](https://img.aspxhome.com/file/2023/3/120053_0s.png)
Java sleep方法及中断方式、yield方法代码实例
2023-10-22 10:59:49
![](https://img.aspxhome.com/file/2023/0/97960_0s.png)
Java logback日志的简单使用
2023-07-15 01:32:33
Java找不到或无法加载主类及编码错误问题的解决方案
2021-08-01 03:43:10
详解C#开发Android应用程序的流程
2021-08-11 21:32:59
![](https://img.aspxhome.com/file/2023/9/84409_0s.png)
Java 通过API操作GraphQL
2021-12-24 03:21:49
手把手带你实现一个萌芽版的Spring容器
2023-03-10 15:45:44
![](https://img.aspxhome.com/file/2023/9/94759_0s.png)
C字符串操作函数的实现详细解析
2022-10-26 16:28:37
java文件读写工具类分享
2023-07-30 21:04:19
Android中Retrofit的简要介绍
2022-07-19 08:42:49
![](https://img.aspxhome.com/file/2023/7/97847_0s.png)
C# PDF Page操作设置页面切换按钮的方法
2021-11-18 04:33:43
![](https://img.aspxhome.com/file/2023/8/91238_0s.png)
Android实现手指触控图片缩放功能
2021-06-07 17:08:00
![](https://img.aspxhome.com/file/2023/9/106839_0s.jpg)
Java多线程--让主线程等待所有子线程执行完毕在执行
2022-09-14 01:21:34