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 answerC;
    public String answerD;
    public int answer;
    public String explaination;
    public int ID ;
    //用户选择的答案
    public int selectedAnswer;
}

DBService:

使用android自带数据库 下载SQLite Database Browser对数据库进行操作
src main 文件夹下创建assests文件夹(此文件夹下的内容在应用被打包成apk时不会被压缩) (存放试题数据库)
在数据库启动时,将该数据库文件复制到数据库目录下

package com.example.lenovo.exam;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by lenovo on 2017/12/4.
 */
//连接数据库,并从数据库中获取所需数据
public class DBService {
    private SQLiteDatabase db;
    //在构造函数中打开指定数据库,并把它的引用指向db
    public DBService(){
        db=SQLiteDatabase.openDatabase("/data/data/com.example.lenovo.exam/databases/question.db" +
                "",null,SQLiteDatabase.OPEN_READWRITE);
    }
    //获取数据库中的问题
    public List<Question> getQuestion(){
        List<Question> list=new ArrayList<Question>();
        /*
               Cursor是结果集游标,用于对结果集进行随机访问,其实Cursor与JDBC中的ResultSet作用很相似。
             rawQuery()方法的第一个参数为select语句;第二个参数为select语句中占位符参数的值,如果select语句没有使用占位符,该参数可以设置为null。*/
        Cursor cursor =db.rawQuery("select * from question",null);
        if(cursor.getCount()>0){
            cursor.moveToFirst();//将cursor移动到第一个光标上
            int count=cursor.getCount();
            //将cursor中的每一条记录生成一个question对象,并将该question对象添加到list中
            for(int i=0;i<count;i++){
                cursor.moveToPosition(i);
                Question question =new Question();
                question.ID=cursor.getInt(cursor.getColumnIndex("ID"));
                question.question=cursor.getString(cursor.getColumnIndex("question"));
                question.answerA=cursor.getString(cursor.getColumnIndex("answerA"));
                question.answerB=cursor.getString(cursor.getColumnIndex("answerB"));
                question.answerC=cursor.getString(cursor.getColumnIndex("answerC"));
                question.answerD=cursor.getString(cursor.getColumnIndex("answerD"));
                question.answer=cursor.getInt(cursor.getColumnIndex("answer"));

                question.explaination=cursor.getString(cursor.getColumnIndex("explanation"));
                //表示没有选择任何选项
                question.selectedAnswer=-1;
                list.add(question);
            }
        }
        return list;
    }

}

ExamActivity:


                
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值