if(username.equals(resultCursor.getString(0))&&password.equals(resultCursor.getString
(1))){
Toast.makeText(//创建Toast
MainActivity.this,"恭喜您登陆成功!
",Toast.LENGTH_SHORT).show();//显示Toast信息
IntentinttMainAct=newIntent
(MainActivity.this,guanli.class);
startActivityForResult(inttMainAct,INFORMATIONACT);
}else{
Toast.makeText(MainActivity.this,"请输入正确的用户名或密码!
",Toast.LENGTH_SHORT).show();
}
}
}
resultCursor.moveToNext();
3.2主界面和子界面通过线性布局方式进行布局,这样可以显得思路清晰,明朗。
主要元素由Button和TextView控件组成。
跳转技术:
使用Intent方式进行跳转。
4数据库设计
数据库设计我们建立了一个数据库,在这个数据库下新建了两张用于保存信息的表。
教师信息表:
序号
字段名称
中文说明
数据类型
是否为空
描述
1
User_Id
教师ID
IET
NotNull
主键自动增长
2
User_Name
教师姓名
TEXT
NotNull
3
User_xb
系别
TEXT
4
User_zhic
职称
TEXT
5
User_gongz
工资
INT
表4-1教师信息表
管理员表
序号
字段名字
中文说明
数据类型
是否为空
描述
1
gl_Id
管理员ID
INT
NotNull
用户管理员登陆
2
gl_mm
管理员密码
INT
NotNull
密码
表4-2管理员表
建数据库和建表的SQL语句:
privateSQLiteDatabaseOpenOrCreateDB()
{
SQLiteDatabasedbSQLiteDatabase=null;
try{
dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db",null);
}
catch(Exceptionex){
returnnull;
}
returndbSQLiteDatabase;
}
privatebooleanCreateTable()
{
StringsqlCreateTable="CREATETABLEJS"+
"(User_IdINTEGERPRIMARYKEY,User_nameTEXTNOTNULL,"+
"User_xbTEXT,"+
"User_zhicTEXT,"+
"User_gongzTEXT)";
if(m_dbSQLiteDatabase==null)returnfalse;
m_dbSQLiteDatabase.execSQL(sqlCreateTable);
returntrue;
}
首先第一张表是用来保存管理员登录信息,用来进行教师管理系统的登录。
另一张表是用来管理教师信息,所用到的技术主要是增、删、改、查和排序。
增加sql语句:
cvContextValues.put("User_Id",i);//插入数据字段
cvContextValues.put("User_name",strName);
cvContextValues.put("User_xb",strxb);
cvContextValues.put("User_zhic",strzc);
cvContextValues.put("User_gongz",strgz);
m_dbSQLiteDatabase.insert("JS",null,cvContextValues);//使用insert方法实现插入数据
删除SQL语句:
StringstrWhereClause="User_Id=?
";//删除条件
String[]strArrayWhereArg={String.valueOf(str)};//删除条件参数
m_dbSQLiteDatabase.delete("JS",strWhereClause,strArrayWhereArg);//调用delete方法删除
myResult.setText("删除成功");提示信息
修改SQL语句:
ContentValuesupdateValues=newContentValues();//对象实例化
updateValues.put("User_Id",strNew);//修改值
StringstrWhereClause="User_Id=?
";//修改条件
String[]strArrayWhereArg={str};//修改条件参数
m_dbSQLiteDatabase.update("JS",updateValues,strWhereClause,strArrayWhereArg);//调用update方法更新
查询SQL语句:
StringstrMsg="查到的数据:
\n编号姓名性别职称工资\n";
CursorresultCursor=m_dbSQLiteDatabase.query("JS",newString[]{"User_Id","User_Name","User_xb","User_zhic","User_gongz"},null,null,null,null,null);//调用query方法查询数据
if(resultCursor.moveToFirst()){
for(inti=0;istrMsg+=""+resultCursor.getString(0)+""+resultCursor.getString
(1)+""+resultCursor.getString
(2)+""+resultCursor.getString(3)+""+resultCursor.getString(4)+"\n";//依次获取查询到的字段
resultCursor.moveToNext();
五、详细设计
1查找通讯录信息
该模块的设计思想为,按照查询关键字从数据库表中读取所有人的信息,并显示查找信息。
先打开数据库,利用SQLiteDatabase。
Query()方法进行查询,将查询关键字设为null进行整体查询,然后用cursor类实现输出。
否
是
图1查询流程图m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db",null);//打开数据库
if(m_dbSQLiteDatabase!
=null){
StringstrMsg="查到的数据:
\n编号姓名性别职称工资\n";
//查询条件
CursorresultCursor=m_dbSQLiteDatabase.query("JS",newString[]{"User_Id","User_Name","User_xb","User_zhic","User_gongz"},null,null,null,null,null);
//将查询到的数据一次列出
if(resultCursor.moveToFirst()){
for(inti=0;istrMsg+=""+resultCursor.getString(0)+""+resultCursor.getString
(1)+""+resultCursor.getString
(2)+""+resultCursor.getString(3)+""+resultCursor.getString(4)+"\n";
resultCursor.moveToNext();
}
2修改通讯录
该模块的设计思想为,按照修改关键字从数据库表中读取所有人的信息,并进行通过输入的修改关键词进行信息的个别修改。
修改流程图:
否
是
图2修改流程图
修改姓名代码:
SQLiteDatabasem_dbSQLiteDatabase=null;
m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db",null);//打开数据库
Stringstr=txtkey.getText().toString();//获取数据字符串
StringstrNew=txtNew.getText().toString();
if(m_dbSQLiteDatabase!
=null){//判断数据库是否为空
StringstrMsg="查到的数据:
\n编号姓名性别职称工资\n";
CursorresultCursor=m_dbSQLiteDatabase.query("JS",newString[]{"User_Id","User_Name","User_xb","User_zhic","User_gongz"},null,null,null,null,null,null);//查询所有教师信息
if(resultCursor.moveToFirst()){
for(inti=0;istrMsg+=""+resultCursor.getString(0)+""+resultCursor.getString
(1)+""+resultCursor.getString
(2)+""+resultCursor.getString(3)+""+resultCursor.getString(4)+"\n";
resultCursor.moveToNext();
}
ContentValuesupdateValues=newContentValues();
updateValues.put("User_Name",strNew);//修改条件
StringstrWhereClause="User_Id=?
";
String[]strArrayWhereArg={str};
m_dbSQLiteDatabase.update("JS",updateValues,
strWhereClause,strArrayWhereArg);//进行更新
txtresult.setText(strMsg);//显示更新后的内容
Toast.makeText(xiugai.this,"修改成功",Toast.LENGTH_LONG).show();
}
else{
txtresult.setText("未找到!
");
}
m_dbSQLiteDatabase.close();
}}
3增加通讯录
该模块的设计思想为,按照需要增加数据写入数据库中,并提示增加成功信息。
增加流程图:
否
是
图3增加流程图
增加部分代码:
//获得各个控件引用
EditTextedtname=(EditText)findViewById(R.id.EditText02);
EditTextedtnum=(EditText)findViewById(R.id.EditText01);
EditTextedtxb=(EditText)findViewById(R.id.EditText03);
EditTextedtgz=(EditText)findViewById(R.id.EditText04);
EditTextedtyx=(EditText)findViewById(R.id.EditText05);
SQLiteDatabasem_dbSQLiteDatabase=null;
m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase(
"/data/data/com.example.jsgl/JSDB.db",null);//打开数据库
StringstrNum,strName,strxb,strzc,strgz;//定义字符串
//获取输入的字符串
strNum=edtnum.getText().toString();
strName=edtname.getText().toString();
strxb=edtxb.getText().toString();
strzc=edtgz.getText().toString();
strgz=edtyx.getText().toString();
inti=Integer.parseInt(strNum);
/*Toast.makeText(
add.this,
strNum+","+strName+","+strTel+","+strage
+","+stryx,Toast.LENGTH_LONG).show();*/
if(m_dbSQLiteDatabase!
=null){
//插入数据
ContentValuescvContextValues=newContentValues();
cvContextValues.put("User_Id",i);
cvContextValues.put("User_name",strName);
cvContextValues.put("User_xb",strxb);
cvContextValues.put("User_zhic",strzc);
cvContextValues.put("User_gongz",strgz);
m_dbSQLiteDatabase.insert("JS",null,cvContextValues);
Toast.makeText(insert.this,"成功添加",Toast.LENGTH_LONG).show();//toast提示
}
}
4删除通讯录
该模块的设计思想为,按照修改关键字从数据库表中读取所有人的信息,并进行通过输入的删除关键词进行信息的删除。
删除流程图:
否
是
图4删除流程图
删除模块代码:
SQLiteDatabasem_dbSQLiteDatabase=null;
m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db",null);
finalStringstr=deleKey.getText().toString();
if(m_dbSQLiteDatabase!
=null){
//delete()
if(rId.isChecked()){
StringstrMsg="查到的数据:
\n编号姓名性别职称工资\n";
CursorresultCursor=m_dbSQLiteDatabase.query("JS",newString[]{"User_Id","User_Name","User_xb","User_zhic","User_gongz"},"User_Id=?
",newString[]{str},null,null,null);
if(resultCursor.moveToFirst()){
for(inti=0;istrMsg+=""+resultCursor.getString(0)+""+resultCursor.getString
(1)+""+resultCursor.getString
(2)+""+resultCursor.getString(3)+""+resultCursor.getString(4)+"\n";
resultCursor.moveToNext();
}
Dialogdialog=newAlertDialog.Builder(shanchu.this)//设置Dialog提示
.setTitle("删除对话框")
.setIcon(R.drawable.ic_launcher)
.setMessage("确认删除吗?
\n"+strMsg)
.setPositiveButton("确认",newDialogInterface.OnClickListener(){
publicvoidonClick(DialogInterfacedialog,intwhich){
SQLiteDatabasem_dbSQLiteDatabase=null;
m_dbSQLiteDatabase=SQLiteDatabase.openOrCreateDatabase("/data/data/com.example.jsgl/JSDB.db",null);
StringstrWhereClause="User_Id=?
";//设置删除条件
String[]strArrayWhereArg={String.valueOf(str)}