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> 


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 非常实用的侧滑删除控件SwipeLayout

    非常实用的侧滑删除控件SwipeLayout

    这篇文章主要为大家详细介绍了非常实用的侧滑删除控件SwipeLayout,类似于QQ侧滑点击删除效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Android使用CoordinatorLayout实现底部弹出菜单

    Android使用CoordinatorLayout实现底部弹出菜单

    这篇文章主要为大家详细介绍了Android使用CoordinatorLayout实现底部弹出菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Android App 如何防止抓包方法及分析

    Android App 如何防止抓包方法及分析

    这篇文章主要为大家介绍了Android App如何防止抓包的方法及分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Android 添加TextView删除线(代码简单)

    Android 添加TextView删除线(代码简单)

    最近接了个项目,其中有项目需求是这样的,有这么个需求,就是一个产品下有两个价格,一个是市场价,一个是销售价,这时要把市场价添加个删除线;怎么实现呢?下面小编给大家分享一段简单的代码实现Android 添加TextView删除线
    2016-02-02
  • Android仿新版微信浮窗效果

    Android仿新版微信浮窗效果

    在新版微信中,可以把浏览的文章缩小为浮窗.点击浮窗继续阅读.这篇文章主要介绍了Android仿新版微信浮窗效果,需要的朋友可以参考下
    2018-06-06
  • Android中Intent机制详解及示例总结(总结篇)

    Android中Intent机制详解及示例总结(总结篇)

    本文是小编日常收集整理些有关Android中Intent机制详解及示例总结,对android中intent相关知识感兴趣的朋友一起学习吧
    2016-04-04
  • Android基于OpenGL在GLSurfaceView上绘制三角形及使用投影和相机视图方法示例

    Android基于OpenGL在GLSurfaceView上绘制三角形及使用投影和相机视图方法示例

    这篇文章主要介绍了Android基于OpenGL在GLSurfaceView上绘制三角形及使用投影和相机视图方法,结合实例形式分析了Android基于OpenGL的图形绘制技巧,需要的朋友可以参考下
    2016-10-10
  • android贝塞尔曲线实现波浪效果

    android贝塞尔曲线实现波浪效果

    这篇文章主要为大家详细介绍了android贝塞尔曲线实现波浪效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Android 对Map按key和value分别排序的实例

    Android 对Map按key和value分别排序的实例

    下面小编就为大家带来一篇Android 对Map按key和value分别排序的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Android搭建grpc环境过程分步详解

    Android搭建grpc环境过程分步详解

    本篇文章使用的IDE是Android Studio。这里先吐槽一句,安卓项目搭建grpc环境,不管是引入插件还是引入第三方库,对于版本的要求都极为苛刻,一旦版本不匹配就会报错,所以对于版本的搭配一定要注意
    2023-04-04

最新评论