android选择答题功能,Android实现简单的答题系统

android选择答题功能,Android实现简单的答题系统

2023年7月7日发(作者:)

android选择答题功能,Android实现简单的答题系统本⽂实例为⼤家分享了Android实现答题系统的具体代码,供⼤家参考,具体内容如下Question:package ;/*** 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 ;import ;import Database;import ist;import ;/*** Created by lenovo on 2017/12/4.*///连接数据库,并从数据库中获取所需数据public class DBService {private SQLiteDatabase db;//在构造函数中打开指定数据库,并把它的引⽤指向dbpublic DBService(){db=tabase("/data/data//databases/" +"",null,_READWRITE);}//获取数据库中的问题public List getQuestion(){List list=new ArrayList();/*Cursor是结果集游标,⽤于对结果集进⾏随机访问,其实Cursor与JDBC中的ResultSet作⽤很相似。rawQuery()⽅法的第⼀个参数为select语句;第⼆个参数为select语句中占位符参数的值,如果select语句没有使⽤占位符,该参数可以设置为null。*/Cursor cursor =ry("select * from question",null);if(nt()>0){First();//将cursor移动到第⼀个光标上int count=nt();//将cursor中的每⼀条记录⽣成⼀个question对象,并将该question对象添加到list中for(int i=0;Position(i);Question question =new Question();=(umnIndex("ID"));on=ing(umnIndex("question"));A=ing(umnIndex("answerA"));B=ing(umnIndex("answerB"));C=ing(umnIndex("answerC"));D=ing(umnIndex("answerD"));=(umnIndex("answer"));nation=ing(umnIndex("explanation"));//表⽰没有选择任何选项edAnswer=-1;(question);}}return list;}}ExamActivity:package ;import ty;import ialog;import Interface;import ;import ;import ;import utton;import roup;import ew;import ist;import ;/*** Created by lenovo on 2017/12/4.*/public class ExamActivity extends Activity {private int count;private int current;private boolean wrongMode;//标志变量,判断是否进⼊错题模式protected void onCreate(Bundle savedInstanceState) {te(savedInstanceState);setContentView(ty_exam);DBService dbService = new DBService();final List list = stion();count = ();current = 0;wrongMode=false;//默认情况final TextView tv_question = findViewById(on);final RadioButton[] radioButtons = new RadioButton[4];radioButtons[0] = findViewById(A);radioButtons[1] = findViewById(B);radioButtons[2] = findViewById(C);radioButtons[3] = findViewById(D);Button btn_previous = findViewById(_previous);Button btn_next = findViewById(_next);final TextView tv_explaination = findViewById(nation);final RadioGroup radioGroup = findViewById(roup);//为控件赋值Question q = (0);tv_t(on);tv_t(nation);radioButtons[0].setText(A);radioButtons[1].setText(B);radioButtons[2].setText(C);radioButtons[3].setText(D);btn_lickListener(new kListener() {@Overridepublic void onClick(View view) {if (current < count - 1) {//若当前题⽬不为最后⼀题,点击next按钮跳转到下⼀题;否则不响应current++;//更新题⽬Question q = (current);tv_t(on);radioButtons[0].setText(A);radioButtons[1].setText(B);radioButtons[2].setText(C);radioButtons[3].setText(D);tv_t(nation);//若之前已经选择过,则应记录选择heck();if (edAnswer != -1) {radioButtons[edAnswer].setChecked(true);}}//错题模式的最后⼀题else if(current==count-1&& wrongMode==true){new r().setTitle("提⽰").setMessage("已经到达最后⼀题,是否退出?").setPositiveButton("确定", new kListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {();}}).setNegativeButton("取消",null).show();}else{//当前题⽬为最后⼀题时,告知⽤户作答正确的数量和作答错误的数量,并询问⽤户是否要查看错题final List wrongList=checkAnswer(list);//作对所有题⽬if(()==0){new r().setTitle("提⽰").setMessage("恭喜你全部回答正确!").setPositiveButton("确定", new kListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {();}}).show();}elsenew r().setTitle("提⽰").setMessage("您答对了"+(()-())+"道题⽬;答错了"+()+"道题⽬。是否查看错题?").setPositiveButton("确定", new kListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int which) {//判断进⼊错题模式wrongMode=true;List newList=new ArrayList();//将错误题⽬复制到newList中for(int i=0;i< ();i++){(((i)));}//将原来的list清空();//将错误题⽬添加到原来的list中for(int i=0;((i));}current=0;count=();//更新显⽰时的内容Question q = (current);tv_t(on);radioButtons[0].setText(A);radioButtons[1].setText(B);radioButtons[2].setText(C);radioButtons[3].setText(D);tv_t(nation);//显⽰解析tv_ibility(E);}}).setNegativeButton("取消", new kListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int which) {//点击取消时,关闭当前();}}).show();}}});btn_lickListener(new kListener() {@Overridepublic void onClick(View view) {if (current > 0)//若当前题⽬不为第⼀题,点击previous按钮跳转到上⼀题;否则不响应{current--;Question q = (current);tv_t(on);radioButtons[0].setText(A);radioButtons[1].setText(B);radioButtons[2].setText(C);radioButtons[3].setText(D);tv_t(nation);//若之前已经选择过,则应记录选择heck();if (edAnswer != -1) {radioButtons[edAnswer].setChecked(true);}}}});//选择选项时更新选择heckedChangeListener(new kedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup radioGroup, int checkedId) {for (int i = 0; i < 4; i++) {if (radioButtons[i].isChecked() == true) {(current).selectedAnswer = i;break;}}}});}/*判断⽤户作答是否正确,并将作答错误题⽬的下标⽣成list,返回给调⽤者*/private List checkAnswer(List list) {List wrongList = new ArrayList();for(int i=0;i{if((i).answer!=(i).selectedAnswer){(i);}}return wrongList;}}MainActivity:package ;import ;import patActivity;import ;import ;import ;import ;import tputStream;import ption;import tream;import Stream;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {te(savedInstanceState);setContentView(ty_main);String DB_PATH = "/data/data//databases/";String DB_NAME = "";//应⽤启动时,判断数据库是否存在,不存在则将提前打包好的数据库⽂件复制到数据库⽬录下//数据库⽬录不存在时,创建数据库⽬录if ((new File(DB_PATH + DB_NAME).exists()) == false) {File dir = new File(DB_PATH);if (!()) {();}}//定义输⼊输出流,⽤于复制⽂件try {InputStream is = getBaseContext().getAssets().open(DB_NAME);OutputStream os = new FileOutputStream(DB_PATH + DB_NAME);byte[] buffer = new byte[1024];int length;while ((length = (buffer)) > 0) {(buffer, 0, length);}//刷新输出流,关闭输⼊输出流();();();} catch (IOException e) {tackTrace();}Button btn = findViewById();lickListener(new kListener(){public void onClick(View v) {Intent intent = new Intent(, );startActivity(intent);}});}}运⾏截图以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持脚本之家。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1688675403a161688.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信