专栏首页恩蓝脚本Android APP编写简单答题器

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  

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android ScrollView无法填充满屏幕的解决办法

    ScrollView滚动视图是指当拥有很多内容、屏幕显示不完时、需要通过滚动跳来显示的视图、Scrollview的一般用法如下

    砸漏
  • Android使用Activity实现简单的可输入对话框

    众所周知,在应用中这样那样的评论总是少不了的,有的应用是在底部直接加一个EditText和一个Button,让用户输入文字或者表情之后点击按钮提交;而有的虽然也...

    砸漏
  • Android 在程序运行时申请权限的实例讲解

    这里我们以拨打电话申请权限来写个小例子,也就是CALL_PHONE,因为拨打电话会涉及用户手机的资费问题,因而被列为了危险权限,在Android6.0系统出现之...

    砸漏
  • 速读原著-Android应用开发入门教程(布局(Layout))

    布局(Layout)是各个控件在屏幕上的位置关系,视图组的几个扩展类与布局相关。在 Android 中布局通常有以下几种不同的情况:

    cwl_java
  • Android开发实现的自动换图片、轮播图效果示例

    本文实例讲述了Android开发实现的自动换图片、轮播图效果。分享给大家供大家参考,具体如下:

    砸漏
  • 从0系统学Android--3.2四种基本布局

    上一节我们学习了 Android 中的一些常用的控件和布局的用法。这里我们来看一下他们的关系图

    开发者
  • Android编程出现Button点击事件无效的解决方法示例

    本文实例讲述了Android编程出现Button点击事件无效的解决方法。分享给大家供大家参考,具体如下:

    砸漏
  • [android] 手机卫士设备管理权限锁屏

    获取DevicePolicyManager对象,通过getSystemService(DEVICE_POLICY_MANAGER),设备策略管理器

    陶士涵
  • Android精通:TableLayout布局,GridLayout网格布局,FrameLayout帧布局,AbsoluteLayout绝对布局,RelativeLayout相对布局

    TableLayout是将子类向分别排列成行和列的布局视图容器,TableLayout是由许多TableRow对象组成的,表格布局以行列的形式管理子控件,每一个...

    达达前端
  • Android UI控件系列:LinearLayout(线性布局)

    Android UI控件系列:LinearLayout(线性布局) LinearLayout是在线性方向显示View元素的一个ViewGroup,可以是水平方...

    用户1289394

扫码关注云+社区

领取腾讯云代金券