Android APP编写简单答题器

 更新时间:2018年01月17日 10:14:34   投稿:lijiao  
这篇文章主要为大家详细介绍了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通过AlarmManager类实现简单闹钟功能

    Android通过AlarmManager类实现简单闹钟功能

    这篇文章主要为大家详细介绍了Android通过AlarmManager类实现简单闹钟功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Android数据库greenDAO配置与使用介绍

    Android数据库greenDAO配置与使用介绍

    这篇文章主要介绍了Android集成GreenDao数据库,使用数据库存储时候,一般都会使用一些第三方ORM框架,比如GreenDao,本文分几步给大家介绍Android集成GreenDao数据库的方法,需要的朋友可以参考下
    2023-03-03
  • AndroidStudio中AVD虚拟机设备空间不足调试过程出现的黑屏问题及解决方案

    AndroidStudio中AVD虚拟机设备空间不足调试过程出现的黑屏问题及解决方案

    这篇文章主要介绍了解决AndroidStudio中AVD虚拟机设备空间不足调试过程出现的黑屏问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Android之TextView自适应大小

    Android之TextView自适应大小

    对于设置TextView的字体默认大小对于UI界面的好看程度是很重要的,小屏幕设置的文字过大或者大屏幕设置的文字过小都造成UI的不美观。现在就让我们学习自适应大小的TextView控件。下面跟着小编一起来看下吧
    2017-03-03
  • Android添加联系人到通讯录的方法

    Android添加联系人到通讯录的方法

    本周项目中遇到了需要添加联系人或者添加到已有联系人的需求,联系人中需要保存的字段有很多,之前不太熟悉,在这里总结一下。
    2021-05-05
  • Android如何动态调整应用字体大小详解

    Android如何动态调整应用字体大小详解

    这篇文章主要给大家介绍了关于Android如何动态调整应用字体大小的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-05-05
  • android仿京东商品属性筛选功能

    android仿京东商品属性筛选功能

    这篇文章主要为大家详细介绍了android仿京东商品属性筛选功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Android编程实现图标拖动效果的方法

    Android编程实现图标拖动效果的方法

    这篇文章主要介绍了Android编程实现图标拖动效果的方法,涉及Android事件响应及图标变换的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Android登录代码MVP架构详解

    Android登录代码MVP架构详解

    这篇文章主要为大家详细介绍了Android登录代码MVP架构的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • ViewPager实现漂亮的引导页

    ViewPager实现漂亮的引导页

    这篇文章主要为大家详细介绍了ViewPager实现漂亮的引导页,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08

最新评论