Android APP编写简单答题器

本文为大家分享了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实现倒计时功能代码
  • android自定义倒计时控件示例
  • Android实现加载广告图片和倒计时的开屏布局
  • Android实现计时与倒计时的常用方法小结
  • Android 实现闪屏页和右上角的倒计时跳转实例代码
  • Android通过手势实现答题器翻页效果
  • Android账号注册实现点击获取验证码倒计时效果
  • Android中使用TextView实现高仿京东淘宝各种倒计时效果
  • Android答题APP的设计与实现
  • Android实现简单的答题系统
  • 基于Android实现答题倒计时功能
(0)

相关推荐

  • android实现倒计时功能代码

    效果图,每隔1秒,变换一下时间  xml: 复制代码 代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="mat

  • Android答题APP的设计与实现

    还没有整理完,待续-- 学校开了Android课,最后让交一个大作业.正好拿来练练手,记录下思路.也希望能给有需要的朋友们一些帮助.恩,纯小白教程,大神们可以绕路了. 作业的题目是这样的: 考试APP系统: 1)要求有用户登陆功能:从远程服务器进行登陆验证. 2)要有考试测试界面,主要是选择.判断.简答题目测试. 3)要有统计成绩界面和错题显示界面. 评分标准: 1.界面设计占评分的30% 2.系统运行正确; 功能完善:工作量充分: 系统实现有一定的技术的难度.50% 3.要求有适当的系统主要模

  • Android实现计时与倒计时的常用方法小结

    本文实例总结了Android实现计时与倒计时的常用方法.分享给大家供大家参考,具体如下: 方法一 Timer与TimerTask(Java实现) public class timerTask extends Activity{ private int recLen = 11; private TextView txtView; Timer timer = new Timer(); public void onCreate(Bundle savedInstanceState){ super.onC

  • Android中使用TextView实现高仿京东淘宝各种倒计时效果

    今天给大家带来的是仅仅使用一个TextView实现一个高仿京东.淘宝.唯品会等各种电商APP的活动倒计时.最近公司一直加班也没来得及时间去整理,今天难得休息想把这个分享给大家,只求共同学习,以及自己后续的复习.为什么会想到使用一个TextView来实现呢?因为最近公司在做一些优化的工作,其中就有一个倒计时样式,原来开发的这个控件的同事使用了多个TextView拼接在一起的,实现的代码冗余比较大,故此项目经理就说:小宏这个就交给你来优化了,并且还要保证有一定的扩展性,当时就懵逼了.不知道从何处开始

  • Android实现加载广告图片和倒计时的开屏布局

    这是一个android开屏布局的实例,可以用于加载广告图片和倒计时的布局.程序中设置的LayoutParams,划分额外空间比例为6分之5,具体权重比例可根据用户自己需求来自定义,异步加载广告图片,相关的Android代码. 具体实现代码如下: package cn.waps.extend; import android.app.Activity; import android.content.Context; import android.content.res.Configuration;

  • 基于Android实现答题倒计时功能

    讲一下我在做一个答题APP时涉及到倒计时时遇到的一个问题吧. 碎片(Fragment)+CountDownTimer组成的一个答题,其中遇到的一个问题就是,这个题的倒计时在你手动滑动下一个题的时候却用在了下一个题的时间 解决这个问题运用的就是懒加载来控制倒计时的开始和取消 首先你要先定义一个抽象类继承Fragment 再让你的答题那个碎片的Activity继承 package com.zking.sun.dao; import android.support.v4.app.Fragment; i

  • Android 实现闪屏页和右上角的倒计时跳转实例代码

    以前编程的时候,遇到倒计时的功能时,经常自己去写,但其实Android已经帮封装好了一个倒计时类CountDownTimer,其实是将后台线程的创建和Handler队列封装成为了一个方便的类调用. 闪屏页用到了handler和CountDownTimer类,还需配置一下Activity的主题,这里是:android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 全屏主题的意思. 给大家展示下效果图: 代码如下所示: package

  • Android实现简单的答题系统

    本文实例为大家分享了Android实现答题系统的具体代码,供大家参考,具体内容如下 Question: package com.example.lenovo.exam; /** * Created by lenovo on 2017/12/4. */ //保存从数据库中读取的记录 public class Question { public String question; public String answerA; public String answerB; public String a

  • android自定义倒计时控件示例

    自定义TextView控件TimeTextView代码: 复制代码 代码如下: import android.content.Context;import android.content.res.TypedArray;import android.graphics.Paint;import android.text.Html;import android.util.AttributeSet;import android.widget.TextView; import com.new0315.R;

  • Android账号注册实现点击获取验证码倒计时效果

    网站中为了防止恶意获取验证短信.验证邮箱,都会在点击获取验证码的按钮上做个倒计时的效果,如何实现这个效果,具体内容如下 效果图:   代码: RegisterActivity.java import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.view.View; import android.widget.Button; import com.jialianjia.bzw.BaseAct

  • Android通过手势实现答题器翻页效果

    本文实例为大家分享了Android答题器翻页功能,主要使用ViewFilpper和GestureDetector来实现,供大家参考,具体内容如下 1.效果图 2.实现思路 把Activity的TouchEvent事件交个GestureDetector来处理,然后使用ViewFilpper使用动画控制多个组件的之间的切换效果.手势的一个Api就不详细说了,大家如果不了解可以查一下. 3.实现的步骤 1).构建手势检测器 2).准备数据 3).为ViewFilpper添加子控件. 4).初始化Ani

随机推荐