基于安卓的模拟考试,运用sqlite对题库增、删、改、查及分页查询,file、shared pereferences存储、读取及面向对象思想。

    看完界面后再来看数据字典

模拟考试系统数据字典(Sqlite3)

用户表user

字段

user_id

user_name

user_age

user_password

user_male

user_create

字段描述

用户ID

用户名

登录密码

性别

创建日期

字段类型

integer

text

text

text

text

text

字段约束

primary key autoincrement

题库表tb_itembank

字段

_id

itembank_no

itembank_name

itembank_stems

itembank_choices

itembank_answer

itembank_create

itembank_modified

字段描述

题库ID

题库号

题库名

题干

选项

答案

创建日期

修改日期

字段类型

integer

INTEGER

TEXT

TEXT

TEXT

TEXT

DATE

DATE

字段约束

选卷表tb_select_paper

字段

tb_sp_user_id

tb_sp_itemB_id

tb_sp_itembank_no

stuAuswer

isRight

testtime

credit

字段描述

用户ID

题库名

题库号

学生答案

是否正确

考试时间

得分

字段类型

INTEGER

INTEGER

INTEGER

TEXT

TEXT

datetime

INTEGER

字段约束

FOREIGN KEY("tb_sp_user_id") REFERENCES "user"("user_id")

)

FOREIGN KEY("tb_sp_itemB_id") REFERENCES "tb_itembank"("_id")

接着再来看代码建数据库代码:  

 package com.example.mock_exam;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.util.Date;

import android.content.Context;
import android.content.ContentValues;
import android.content.res.Resources;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Environment;
import android.util.Log;
public class DBAdapter {
private static String DB_PATH = "";
    private static final String DB_NAME="mock_exam_db.db";//数据库名字

private SQLiteDatabase db;
    final static String TAG="LOGCAT";
    private final Context context;
    private DBOpenHelper dbOpenHelper;

private int pageNo=1;//页码
    private int pageCount=0;//页面总数
    
    private boolean isfirst=false;
    private int limit=10;//显示10行数据

//用户表
        /*功能是实现用户表的数据库建表字段
         * 调用私有变量.
         * 被调用用来
         * Create Date:<2021-10-31>
         * modify data:<2021-10-31>
         *  */    

private static final String DB_TABLE_User="user";
    private static final String KEY_USER_ID="user_id";
    private static final String KEY_USER_NAME="user_name";
    private static final String KEY_USER_AGE="user_age";
    private static final String KEY_USER_PASSWORD="user_password";
    private static final String KEY_USER_MALE="user_male";
    private static final String KEY_USER_CREATE="user_create";
    private static final String KEY_USER_MODIFIED="user_modified";


//题库表各个字段
    private static final String DB_TABLE_ItemBank="tb_itembank";
    private static final String KEY_ItemBank_ID="_id";
    private static final String KEY_ItemBank_No="itembank_no";
    private static final String KEY_ItemBank_Name="itembank_name";
    private static final String KEY_ItemBank_Stems="itembank_stems";
    private static final String KEY_ItemBank_Choices="itembank_choices";
    private static final String KEY_ItemBank_Answer="itembank_answer";
    private static final String KEY_ItemBank_CREATE="itembank_create";
    private static final String KEY_ItemBank_MODIFIED="itembank_modified";
        

//学生选试卷表
    /*功能是实现选择试卷表的数据库字段
     * 调用私有变量.
     * 被调用用来
     * Create Date:<2021-10-31>
     * modify data:<2021-10-31>
     *  */
    private static final String DB_TABLE_SelectPaper="tb_select_paper";
    private static final String KEY_SP_User_ID="tb_sp_user_id";
    private static final String KEY_SP_ItemBank_ID="tb_sp_itemB_id";
    private static final String KEY_SP_ItemBank_No="tb_sp_itembank_no";
    private static final String KEY_StuAuswer="stuAuswer";
    private static final String KEY_IsRight="isRight";
    private static final String KEY_TestTime="testtime";
    private static final String KEY_Credit="credit";

private static class DBOpenHelper extends SQLiteOpenHelper{
            //
            public DBOpenHelper(Context context,String name, CursorFactory factory,int version){    
            super(context,name,factory,version);
            //copyDb(mock_exam_db.db);
             if(android.os.Build.VERSION.SDK_INT >= 4.2){
                 Log.d(TAG,"dbapter");
                    Log.i(TAG,"ibapter");
                    Log.w(TAG,"ibapter");
                    Log.e(TAG,"ibapter");
                    Log.v(TAG,"ibapter"); 
                    //Log.v(TAG,DB_NAME);
                    DB_PATH = context.getApplicationInfo().dataDir + "/databases/";   
                    Log.d(TAG,DB_PATH); 
                } else {
                    Log.d(TAG,"elsedbapter");
                    Log.i(TAG,"elseibapter");
                  //Log.w(TAG,"wbapter");
                   DB_PATH = "/data/data/" + context.getPackageName() + "/databases/";
                   Log.d(TAG,DB_PATH);
                }
            }
           
   //建立用户表   
        private static final String DB_CREATE_table_user="create table IF NOT EXISTS "+DB_TABLE_User+
                "("+KEY_USER_ID+" integer primary key autoincrement," + 
                KEY_USER_NAME+" text," + 
                KEY_USER_AGE+" text,"+
                KEY_USER_PASSWORD+" text,"+
                KEY_USER_MALE+" text,"+
                KEY_USER_CREATE+" text,"+
                KEY_USER_MODIFIED+" text);";
     
     
        //建立题库表的语句
        private static final String DB_CREATE_TB_ItemBank="create table IF NOT EXISTS "+DB_TABLE_ItemBank+
                "("+KEY_ItemBank_ID+" integer primary key autoincrement," +
                KEY_ItemBank_No+" integer,"+
                KEY_ItemBank_Name+" text,"+
                KEY_ItemBank_Stems+" text,"+
                KEY_ItemBank_Choices+" text,"+
                KEY_ItemBank_Answer+" text,"+
                KEY_ItemBank_CREATE+" date,"+
                KEY_ItemBank_MODIFIED+" date);";
      

 //建立学生选择试卷的表语句
        
        private static final String DB_CREATE_TABLE_SelectPaper="create table IF NOT EXISTS "+DB_TABLE_SelectPaper+
                "("+KEY_SP_User_ID+" integer," +
                KEY_SP_ItemBank_ID+" integer,"+
                KEY_SP_ItemBank_No+" integer,"+
                KEY_StuAuswer+" text,"+
                KEY_IsRight+" text,"+
                KEY_TestTime+" datetime,"+
                KEY_Credit+" integer,"+
                "FOREIGN KEY"+"("+KEY_SP_User_ID+") "+"REFERENCES "+DB_TABLE_User+"("+KEY_USER_ID+"),"+
                "FOREIGN KEY"+"("+KEY_SP_ItemBank_ID+") "+"REFERENCES "+DB_TABLE_ItemBank+"("+KEY_ItemBank_ID+")"+
                ");";

        public void onCreate(SQLiteDatabase _db){
            Log.d(TAG,"DBAdapter建库成功");
            //创建数据库目录
            /*File dir = new File(DB_PATH);
            Log.d(TAG,FILE_DIR);
            if (!dir.exists()) {
                dir.mkdir();
            }*/
            _db.execSQL(DB_CREATE_table_user);
            _db.execSQL(DB_CREATE_TB_ItemBank);
             _db.execSQL(DB_CREATE_TABLE_SelectPaper);//执行建立学生选试卷sql语句              
         } 
        public void onUpgrade(SQLiteDatabase _db,int _oldVersion,int _newVersion){
          
            _db.execSQL("DROP TABLE IF EXISTS "+DB_TABLE_User);           
            _db.execSQL("DROP TABLE IF EXISTS "+DB_TABLE_ItemBank);                     
            _db.execSQL("DROP TABLE IF EXISTS "+DB_CREATE_TABLE_SelectPaper);//执行建立学生选试卷sql语句
            Log.d(TAG,"DBAdapter更新数据库成功");
            onCreate(_db);}}
   public DBAdapter(Context _context){
	context=_context;open();
	 isfirst=true;}
	public void open()throws SQLiteException{
		Log.d(TAG,"open");
		dbOpenHelper=new DBOpenHelper(context,DB_NAME,null,DB_VERSION);
		Log.d(TAG,"dbOpenHelper");
        Log.i(TAG,"dbOpenHelper");
		try{db=dbOpenHelper.getWritableDatabase();}
		catch(SQLiteException ex){
			db=dbOpenHelper.getReadableDatabase();
		}
		}
	public void close(){
		if (db!=null){db.close();
		db=null;}}
	public int getStemsCount() 	{ 
		Cursor results =db.query(DB_TABLE, new String[] { KEY_ID, KEY_STEMS,
				KEY_CHOICES, KEY_ANSWER}, null, null, null, null, null);
		int intResults=results.getCount();
		return intResults;	}

看完了建库的代码再来看看user表、tb_itembank表及选卷表的增、删、改、查。

//插入用户
	public long insert(User user){
			ContentValues newValues =new ContentValues();
			newValues.put(KEY_USER_NAME,user.USER_NAME);
			newValues.put(KEY_USER_PASSWORD,user.USER_PASSWORD);
			newValues.put(KEY_USER_MALE,user.USER_MALE);
			newValues.put(KEY_USER_CREATE,user.USER_CREATE);
			Log.d(TAG,user.toString());
			return db.insert(DB_TABLE_User, null, newValues);}
//删除全部用户
	public long deleteAllUserData(){
		return db.delete(DB_TABLE_User, null, null);}
//根据id删除一条数据
		public long deleteOneUserData(long id){
		return db.delete(DB_TABLE_User, KEY_USER_ID+"="+id, null);
	}
//根据id更新一条用户数据
		public long  updateOneData(int id, User user) {
			ContentValues updateValues=new ContentValues();
			updateValues.put(KEY_USER_NAME,user.USER_NAME);
			updateValues.put(KEY_USER_PASSWORD,user.USER_PASSWORD);
			updateValues.put(KEY_USER_MALE,user.USER_MALE);
			DateFormat ddf = DateFormat.getDateInstance(); 
			Date date=new Date();
			user.USER_MODIFIED=ddf.format(date);
			updateValues.put(KEY_USER_MODIFIED,user.USER_MODIFIED);
			//数据库的表名,第二个参数是更新数据,第三个参数更新条件
			return db.update(DB_TABLE_User, updateValues, KEY_USER_ID+"="+id,null );		
		}
//用来获取全部数据
	public User[] queryAllUserData(){
		Cursor results = db.query(DB_TABLE_User, new String[] { KEY_USER_ID,
			KEY_USER_NAME,
			KEY_USER_PASSWORD, 
			KEY_USER_MALE}, null, null, null, null, null);
	return ConvertToUser(results);	}
	
	//根据id获取新的一条数据
	public User[] queryOneUserData(long id) { 
		Cursor results =  db.query(DB_TABLE_User, new String[] { KEY_USER_ID, 
				KEY_USER_NAME,
				KEY_USER_PASSWORD, 
				KEY_USER_MALE}, KEY_USER_ID + "=" + id, null, null, null, null);
		return ConvertToUser(results);}


//查询用户功能
	    private User[] ConvertToUser (Cursor cursou){
		int resultCounts= cursou.getCount();
		if(resultCounts==0||!cursou.moveToFirst()){
			return null;
		}
		User [] User =new User[resultCounts];
		for(int i=0;i<resultCounts;i++){
			User[i]=new  User("",null,null);
			User[i].ID=cursou.getInt(0);
			//使用getColumnIndex()函数获得指定属性难得序号
			User[i].USER_NAME=cursou.getString(cursou.getColumnIndex(KEY_USER_NAME));
			User[i].USER_PASSWORD=cursou.getString(cursou.getColumnIndex(KEY_USER_PASSWORD));
			User[i].USER_MALE=cursou.getString(cursou.getColumnIndex(KEY_USER_MALE));
			cursou.moveToNext();
		}
		return User;
		}
//插入题库
	
	public long insert(ItemBank ItemBank){
					ContentValues newValues =new ContentValues();
					newValues.put(KEY_ItemBank_No,ItemBank.ITEMBANK_NO);
					newValues.put(KEY_ItemBank_Name,ItemBank.ITEMBANK_NAME);
					newValues.put(KEY_ItemBank_Stems,ItemBank.ITEMBANK_STEMS);
					newValues.put(KEY_ItemBank_Choices,ItemBank.ITEMBANK_CHOICES);
					newValues.put(KEY_ItemBank_Answer,ItemBank.ITEMBANK_ANSWER);
					newValues.put(KEY_ItemBank_CREATE,ItemBank.ITEMBANK_CREATE);
					//Log.d(TAG,ItemBank.toString());
					return db.insert(DB_TABLE_ItemBank, null, newValues);}
//根据id删除一条题库数据
		//创建日期2019-10-22
	public long deleteOneItemBankData(long id){
		return db.delete(DB_TABLE_ItemBank, KEY_ItemBank_ID+"="+id, null);
	}
//根据id更新一条题库
			//创建日期2019-10-22
		public long updateOneData(long id,ItemBank itembank){
				ContentValues updateValues =new ContentValues();
				updateValues.put(KEY_ItemBank_Name,itembank.ITEMBANK_NAME);
				updateValues.put(KEY_ItemBank_Stems,itembank.ITEMBANK_STEMS);
				updateValues.put(KEY_ItemBank_Choices,itembank.ITEMBANK_CHOICES);
				DateFormat ddf = DateFormat.getDateInstance(); 
				Date date=new Date();
				itembank.ITEMBANK_MODIFIED=ddf.format(date);
				updateValues.put(KEY_ItemBank_MODIFIED,itembank.ITEMBANK_MODIFIED);
				return db.update(DB_TABLE_ItemBank,updateValues,KEY_ItemBank_ID+"="+id, null);
			}
/**函数名queryOneItemBankData() 
     * 功能把根据ID查询题库。 
     * 调用私有变量. 
     * 被调用用来
 *  Create Date:<2019-10-22>
 *  */ 
	//根据id获取新的一条数据
	public ItemBank[] queryOneItemBankData(long id) 
			       	{   Cursor results =  db.query(DB_TABLE_ItemBank, new String[] { KEY_ItemBank_ID,
			       		KEY_ItemBank_No,
						KEY_ItemBank_Name,
						KEY_ItemBank_Stems, 
						KEY_ItemBank_Choices,
						KEY_ItemBank_Answer,
						KEY_ItemBank_CREATE,
						KEY_ItemBank_MODIFIED},
						KEY_ItemBank_ID + "=" + id, null, null, null, null);
				return ConvertToItembank(results);}
//用来获取全部数据
		/**函数名queryAllItemBankData() 
	     * 功能把查询全部题库。 
	     * 调用私有变量. 
	     * 被调用用来
	     * Create Date:<2019-10-22>
	 *  */ 
	public ItemBank[] queryAllItemBankData(int pageNo){
		//int limit=20;
		Cursor results=null;		
			 results = db.query(DB_TABLE_ItemBank, new String[] { KEY_ItemBank_ID,
					KEY_ItemBank_No,
					KEY_ItemBank_Name,
					KEY_ItemBank_Stems,
					KEY_ItemBank_Choices,
					KEY_ItemBank_Answer,
					KEY_ItemBank_CREATE,					
					//KEY_ItemBank_MODIFIED}, null, null, null, null, null,"20,20");//使用分页查询
					KEY_ItemBank_MODIFIED}, null, null, null, null, null,limit*(pageNo-1)+","+limit);//使用分页查询		
			return ConvertToItembank(results);
		}
//查询题库功能
		private ItemBank[] ConvertToItembank (Cursor cursou){
			int resultCounts= cursou.getCount();
			String strResultCounts=String.valueOf(resultCounts);
			Log.d(TAG,"cursou.getCount()="+strResultCounts);
			if(resultCounts==0||!cursou.moveToFirst()){
				return null;
			}
			ItemBank[] Itembank =new ItemBank[resultCounts];
			for(int i=0;i<resultCounts;i++){
				Itembank[i]=new  ItemBank(0,null,null,null,null);
				Itembank[i].ID=cursou.getInt(0);
				//使用getColumnIndex()函数获得指定属性难得序号
				
				Itembank[i].ITEMBANK_NO=cursou.getInt(cursou.getColumnIndex(KEY_ItemBank_No));
				//Log.d(TAG,"获取表的得指定属性难得序号"+cursou.getString(cursou.getColumnIndex(KEY_ItemBank_No)));
				Itembank[i].ITEMBANK_NAME=cursou.getString(cursou.getColumnIndex(KEY_ItemBank_Name));
				Itembank[i].ITEMBANK_STEMS=cursou.getString(cursou.getColumnIndex(KEY_ItemBank_Stems));
				Itembank[i].ITEMBANK_CHOICES=cursou.getString(cursou.getColumnIndex(KEY_ItemBank_Choices));
				Itembank[i].ITEMBANK_ANSWER=cursou.getString(cursou.getColumnIndex(KEY_ItemBank_Answer));
				Itembank[i].ITEMBANK_CREATE=cursou.getString(cursou.getColumnIndex(KEY_ItemBank_CREATE));
				Itembank[i].ITEMBANK_MODIFIED=cursou.getString(cursou.getColumnIndex(KEY_ItemBank_MODIFIED));
				cursou.moveToNext();
			}
			return Itembank;
			}
/*功能是实现插入记录选择试卷表的数据库操作类似于User的功能
	 * 调用私有变量.
	 * 被调用用来
	 * Create Date:<2021-10-31>
	 * modify data:<2021-10-31>
	 */
	public long insert(SelectPaper select_paper){
		ContentValues newValues =new ContentValues();
		newValues.put(KEY_SP_User_ID,select_paper.Tb_sp_USER_ID);
		newValues.put(KEY_SP_ItemBank_ID,select_paper.Tb_sp_ItemBank_ID);
		newValues.put(KEY_SP_ItemBank_No,select_paper.Tb_sp_ItemBank_NO);
		newValues.put(KEY_StuAuswer,select_paper.StuAuswer);
		newValues.put(KEY_IsRight,select_paper.isRight);
		newValues.put(KEY_TestTime,select_paper.TestTime);
		newValues.put(KEY_Credit,select_paper.Credit);
		Log.d(TAG,select_paper.toString());
		return db.insert(DB_TABLE_SelectPaper, null, newValues);}

//根据id删除一条试题数据	
		public long deleteOneSelectPaper(long id){
				return db.delete(DB_TABLE_SelectPaper, KEY_SP_User_ID+"="+id, null);
			}
//根据id更新一条用户数据
		public long  updateOneData(int id, SelectPaper select_paper) {
					ContentValues updateValues=new ContentValues();
					updateValues.put(KEY_SP_User_ID,select_paper.Tb_sp_USER_ID);
					updateValues.put(KEY_SP_ItemBank_ID,select_paper.Tb_sp_ItemBank_ID);
					updateValues.put(KEY_SP_ItemBank_No,select_paper.Tb_sp_ItemBank_NO);
					updateValues.put(KEY_StuAuswer,select_paper.StuAuswer);
					updateValues.put(KEY_IsRight,select_paper.isRight);
					updateValues.put(KEY_TestTime,select_paper.TestTime);
					
					//数据库的表名,第二个参数是更新数据,第三个参数更新条件
					return db.update(DB_TABLE_SelectPaper, updateValues, KEY_SP_User_ID+"="+id,null );		
				}
/*函数名queryOneSelectPaperData(long id)
	 * 功能是实现选择试卷表的数据库查询的功能
	 * 调用私有变量.
	 * 被调用用来
	 * Create Date:<2021-11-9>
	 * modify data:<2021-11-9>
	 **/
	public SelectPaper[] queryOneSelectPaperData(long id) 
	{ 		Cursor results =  db.query(DB_TABLE_SelectPaper, new String[] { KEY_SP_User_ID, 
				KEY_SP_ItemBank_ID,
				KEY_SP_ItemBank_No,
				KEY_StuAuswer,
				KEY_IsRight,
				KEY_TestTime,
				KEY_Credit
				}, KEY_SP_User_ID + "=" + id, null, null, null, null);
		return ConvertToSelectPaper(results);
		}
	/*函数名queryAllSelectPaperData(long id)
	 * 功能是实现选择试卷表的数据库查询的全部数据功能
	 * 调用私有变量.
	 * 被调用用来
	 * Create Date:<2021-11-9>
	 * modify data:<2021-11-9>
	 **/
	public SelectPaper[] queryAllSelectPaperData() 
	{ 		Cursor results =  db.query(DB_TABLE_SelectPaper, new String[] { KEY_SP_User_ID, 
				KEY_SP_ItemBank_ID,
				KEY_SP_ItemBank_No,
				KEY_StuAuswer,
				KEY_IsRight,
				KEY_TestTime,
				KEY_Credit
				}, null, null, null, null, null);
		return ConvertToSelectPaper(results);
		}
/*函数名ConvertToSelectPaper(Cursor results)
	* 功能是实现选择试卷表的数据库查询的功能
	* 调用私有变量.
	* 被调用用来
	* Create Date:<2021-11-9>
	* modify data:<2021-11-9>
	**/
	private SelectPaper[] ConvertToSelectPaper(Cursor cursou) {
					// TODO Auto-generated method stub
		int resultCounts= cursou.getCount();
		if(resultCounts==0||!cursou.moveToFirst()){
			return null;
		}
		SelectPaper [] SelectPaper =new SelectPaper[resultCounts];
		for(int i=0;i<resultCounts;i++){
			SelectPaper[i]=new  SelectPaper(2,1,1,null,null,1);
			SelectPaper[i].Id=cursou.getInt(0);
			//使用getColumnIndex()函数获得指定属性难得序号
			SelectPaper[i].Tb_sp_USER_ID=cursou.getInt(cursou.getColumnIndex(KEY_SP_User_ID));
			SelectPaper[i].Tb_sp_ItemBank_ID=cursou.getInt(cursou.getColumnIndex(KEY_SP_ItemBank_ID));
			SelectPaper[i].Tb_sp_ItemBank_NO=cursou.getInt(cursou.getColumnIndex(KEY_SP_ItemBank_No));
			SelectPaper[i].StuAuswer=cursou.getString(cursou.getColumnIndex(KEY_StuAuswer));
			SelectPaper[i].isRight=cursou.getString(cursou.getColumnIndex(KEY_IsRight));
			SelectPaper[i].TestTime=cursou.getString(cursou.getColumnIndex(KEY_TestTime));
			SelectPaper[i].Credit=cursou.getInt(cursou.getColumnIndex(KEY_Credit));
			cursou.moveToNext();
		}
		return SelectPaper;
				}

管理用户的代码即用户的增、删、改、查代码

先看直观感受

然后看布局代码manage_user.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
	android:orientation="vertical"
    tools:context="com.example.mock_exam.ManageTbSelectPaper" >
  
 <LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" >

     <TextView
         android:id="@+id/textViewUserName"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
         android:text="@string/userName" />

     <EditText
         android:id="@+id/editText_user_name"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1" />
 </LinearLayout>
 
  <LinearLayout
      android:layout_width="fill_parent"
      android:layout_height="wrap_content" >

      <TextView
          android:id="@+id/textViewPassword"
          android:layout_width="0dp"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:text="@string/password" />

      <EditText
          android:id="@+id/editText_password"
          android:layout_width="0dp"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:ems="10" >

          <requestFocus />
      </EditText>
  </LinearLayout>
 
  <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="选项"
        android:orientation="vertical"
        android:visibility="invisible" >

        <RadioButton
            android:id="@+id/radioButtouMan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textViewPassword"
            android:text="@string/man" />

        <RadioButton
            android:id="@+id/radioButtonWoman"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/radioButtouMan"
            android:text="@string/woman" />
    </RadioGroup>
 </LinearLayout>
 
  <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >  

       <EditText
           android:id="@+id/editText_id"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:hint="@string/inputID" />

         </LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button_add_user"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="增加用户" />

    <Button
        android:id="@+id/button_id_delect"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="@string/IDdelect" />

    <Button
        android:id="@+id/button_id_update"
        android:layout_width="108dp"
        android:layout_height="match_parent"
        android:text="@string/IDupdate" />
</LinearLayout>

 <LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content" >

     <Button
         android:id="@+id/buttonId_query"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/IDquery" />

     <Button
         android:id="@+id/button_all_display"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
         android:text="@string/display" />

     <Button
         android:id="@+id/button_delect_display"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
         android:text="@string/clean_display" />
 </LinearLayout>

    <TextView
        android:id="@+id/textView_databs"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="数据库" />

</LinearLayout>

ManageUser.java

package com.example.mock_exam;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class ManageUser extends ActionBarActivity implements OnClickListener{
	final static String TAG="LOGCAT";	
	private Button btAddUser=null;
	private Button btDisplayAll=null;
	private Button btDeleteDisplay=null;
	private Button btIdQuery=null;
	private Button btIdDelete=null;
	private Button btIdUpdate=null;
	private EditText editTextUserName=null;
	private EditText editTextPassword=null;
	private EditText editTextId=null;
	//private EditText editTextInputIDQuer=null;
	private RadioGroup radioGroup=null;
	private RadioButton radioButtonMan=null;
	private RadioButton radioButtonWoman=null;	
	private TextView textViewDatabs=null;
	
	//final DBAdapter dbAdapter=new DBAdapter(this);//定义打开数据库的变量
	//private TextView textViewPassword=null;	
	 protected void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        Log.d(TAG,"dSingle");
	        Log.i(TAG,"iSingle");	          
        
	        setContentView(R.layout.manage_user); //设置显示单选	 
	        TextView tV_UserN=(TextView)super.findViewById(R.id.textViewUserName);
	        TextView tV_Password=(TextView)super.findViewById(R.id.textViewPassword);
	        textViewDatabs=(TextView)super.findViewById(R.id.textView_databs);
	        btAddUser=(Button)super.findViewById(R.id.button_add_user);
	        btDisplayAll=(Button)super.findViewById(R.id.button_all_display);
	        btDeleteDisplay=(Button)super.findViewById(R.id.button_delect_display);
	        btIdQuery=(Button)super.findViewById(R.id.buttonId_query);
	        btIdDelete=(Button)super.findViewById(R.id.button_id_delect);
	        btIdUpdate=(Button)super.findViewById(R.id.button_id_update);
	        
	        radioButtonMan=(RadioButton)super.findViewById(R.id.radioButtouMan);
	        radioButtonWoman=(RadioButton)super.findViewById(R.id.radioButtonWoman);
	        
	        radioGroup=(RadioGroup)super.findViewById(R.id.radioGroup);
	        radioGroup.setVisibility(View.VISIBLE);
	        btAddUser.setOnClickListener(this);
	        btDisplayAll.setOnClickListener(this);
	        btDeleteDisplay.setOnClickListener(this);
	        btIdQuery.setOnClickListener(this);
	        btIdDelete.setOnClickListener(this);
	        btIdUpdate.setOnClickListener(this);
	        
	        editTextId=(EditText)super.findViewById(R.id.editText_id);
	        editTextUserName=(EditText)super.findViewById(R.id.editText_user_name);
	        //editTextInputIDQuer=(EditText)super.findViewById(R.id.editText_id);
	        editTextPassword=(EditText)super.findViewById(R.id.editText_password);}
	 
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub	
		final DBAdapter dbAdapter=new DBAdapter(this);//定义打开数据库的变量	
		//String strInputIDquer=editTextUserName.getText().toString();
		if(v==btAddUser){
			User user;
			String strUsern=editTextUserName.getText().toString();
			String strPassword=editTextPassword.getText().toString();
			String strMale=null;
			if(radioButtonMan.isChecked()||radioButtonWoman.isChecked()){
				if(radioButtonMan.isChecked()){
					strMale="男";
				}else if(radioButtonWoman.isChecked()){
					strMale="女";}
			}			
			if(strUsern.length()==0||strPassword.length()==0){
				textViewDatabs.setText("用户名或密码不能为空");
			}else{
				Log.i(TAG,strUsern+"--"+strPassword+"--"+strMale);
				user=new User(strUsern,strPassword,strMale);
			    dbAdapter.insert(user);
			    textViewDatabs.setText("ID为"+user.ID+"数据添加成功!");	}}
		else if(v==btDisplayAll){
			textViewDatabs.setText("null");
			User[] all= dbAdapter.queryAllUserData();
			if(null != all)
			{
				StringBuilder sb=new StringBuilder();
				for(User user:all)
				{
					sb.append("ID: "+user.ID);
					sb.append(" 用户名: "+user.USER_NAME);
					sb.append(" 密码: "+user.USER_PASSWORD);
					sb.append(" 性别: "+user.USER_MALE);
					sb.append(" 创建时间: "+user.USER_CREATE);
					sb.append(" 修改时间: "+user.USER_MODIFIED+"\n");
				}
				textViewDatabs.setText(sb.toString());
			}
		}else if(v==btDeleteDisplay){
			textViewDatabs.setText("null");
		}else if(v==btIdQuery){
			 Log.d(TAG,"ID查询"+ editTextUserName);
			 String strInputUserID=editTextId.getText().toString();
				if(strInputUserID.length()>0){
					//int id =Integer.parseInt(strInputIDquer);
					int intInputidQuery =Integer.parseInt(strInputUserID);
					User[] all= dbAdapter.queryOneUserData(intInputidQuery);
					StringBuilder sb=new StringBuilder();
					if(null!=all){
						for(User user:all)
						{	sb.append("ID:"+user.ID);
							sb.append(" 用户名:"+user.USER_NAME);
							sb.append(" 密码:"+user.USER_PASSWORD);
							sb.append(" 性别:"+user.USER_MALE);
							sb.append(" 创建时间:"+user.USER_CREATE);
							sb.append(" 修改时间:"+user.USER_MODIFIED+"\n");	}
						textViewDatabs.setText(sb.toString());}	
					else if(null==all){
						textViewDatabs.setText("数据库中无内容");}
					}
		}else if(v==btIdDelete){
				String strID=editTextId.getText().toString();				
				if(strID.length()==0){
					textViewDatabs.setText("请输入ID");}
				else if(strID.trim().length()>0){
				int id =Integer.parseInt(strID);
				dbAdapter.deleteOneUserData(id);
				textViewDatabs.setText("ID为"+id+"删除成功!");}
		}else if(v==btIdUpdate){
			String strMale=null;
			//textViewDatabs.setText("null");
			String strID=editTextId.getText().toString();
			String strUserN=editTextUserName.getText().toString();
			String strPassw=editTextPassword.getText().toString();
			
			if(strUserN.length()==0){
				textViewDatabs.setText("请输入ID");}
			else if(strUserN.trim().length()>0&&strUserN.trim().length()>0&&
					radioButtonMan.isChecked()
					||radioButtonWoman.isChecked()&&strPassw.trim().length()>0){
				int id =Integer.parseInt(strID);
				if(radioButtonMan.isChecked()){
					strMale="男";
				}else if(radioButtonWoman.isChecked()){
					strMale="女";
				}
				User user=new User(strUserN,strPassw,strMale); 
			dbAdapter.updateOneData(id,user);
			textViewDatabs.setText("ID为"+id+"更新成功!");}
		}
		dbAdapter.close();//数据库关闭
		}
	}

由于内容比较多,时间有限。下面是项目代码下载地址

Mock_exam.zip-教育文档类资源-CSDN下载

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值