Android 答题应用

        

/**

 *
 * 转载请标明出处:
http://blog.csdn.net/u013598111/article/details/50392136

 *   @author:【JunTao_sun】
 *
 *
*/


       支持大数据题库,本应用 只用了5条数据做例子,主要功能有  viewpager的滑动选题,

答题后自动滚动下一页,支持查询历史答案 ,修改答案。最后提交答题结果,并得出答案。

如果退出应用 则出现对话框提示,是否保存 记录。



 答题完 选择菜单提交 答案。  退出保存记录 ,下次再进 则显示历史作答。


采用sqlite database browser 制作简单的数据库  创建两张表 分别是 问题表,和答题表



主要类有:



DaoHelp是一个数据库帮助类

Myadapter 自定义适配器

MyDialog 自定义对话框

page 展示页面

questions 和RecordForAnswer 是两个实体类

startActivity 是开始界面 跳转

MainActivity代码

<span style="font-size:18px;">package com.example.answer;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import com.example.answer.MyDialog.NotifySaveOrDeleteListener;
import com.example.answer.Page.ViewPageScrollerListener;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends FragmentActivity implements
		ViewPageScrollerListener, NotifySaveOrDeleteListener, OnClickListener {
	
	private String TAG;
	//上一页按钮
	private Button prebtn;
	//下一页按钮
	private Button nextbtn;
	//解释
	private TextView qustion_v;
	//
	private ViewPager viewpg;
	//展示数据的View
	private ArrayList<Page> Pages = new ArrayList<Page>();
	//页数
	private int mLimit;
	//数据库帮助类
	DaoHelp db;
	// 做完选择 回调的页数
	private int mMaxPage;
	// 还没选择 点击上下翻页
	private int mPNSelect;
	private Button btn1;
	private Button btn2;

    //保存路径
	public static final String DB_PATH = "/data/data/com.example.answer/databases/";
    //表名
	public static final String DA_NAME = "answer.db";

	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// File file1 = new File(DB_PATH + DA_NAME);
		// file1.delete();
		//从assets文件下的 数据库文件 保存到 应用里的databases目录下
		initDataBase();
		//初始化页面显示的View
		intiPageView();
		
		viewpg = (ViewPager) this.findViewById(R.id.viewpager);
		
		viewpg.setAdapter(new MyAdapter<View>(MainActivity.this, Pages, mLimit,
				MainActivity.this, db));
		
		btn1 = (Button) this.findViewById(R.id.btn1);
		btn2 = (Button) this.findViewById(R.id.btn2);
		btn1.setOnClickListener(this);
		btn2.setOnClickListener(this);
	     //设置viewpager的监听
		viewpg.setOnPageChangeListener(new OnPageChangeListener() {

			@Override
			public void onPageSelected(int arg0) {
				mPNSelect = arg0;

			}

			@Override
			public void onPageScrolled(int arg0, float arg1, int arg2) {
				// TODO Auto-generated method stub

			}

			@Override
			public void onPageScrollStateChanged(int arg0) {
				// TODO Auto-generated method stub
				Log.e(TAG, "onPageScrollStateChanged" + arg0);

			}
		});
	}

	/**
	 * 创建并显示 对话框
	 */
	private void dialogCreate() {
		FragmentManager fm = getSupportFragmentManager();
		MyDialog dialog = new MyDialog();
		// MyDialog1 dialog=new MyDialog1();

		dialog.show(fm, "tip");

	}

	private void intiPageView() {
		db = new DaoHelp();
		mLimit = db.getQuestionData().size()
  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值