手机应用平台开发报告
课程名称:手机应用平台开发
项目名称:教室管理
小组成员:刘泰驿 2015317200616
熊国奥 2015317200618
詹萧扬 2015317200615
邱慧 2015317200630
盖赟婷 2015317200531
指导老师:金星
时间:2018.6.15
信息学院计算机科学系
一.项目概述
1.1编写目的
本文档的编写主要为了介绍本项目的开发目的,项目需求,以及开发的情况,将本系统的结构进行大概的介绍,以便用户更熟悉的了解本软件,让用户在使用该软件前,对本软件的使用有一定的了解。
1.2项目介绍
随着智能手机的逐渐普及及其功能的多样化、实用化,移动设备逐渐成为人们生活中不可或缺的一部分。目前,市场占有率最高的两个移动平台系统分别为苹果公司的ios,及Google作为代表的Android系统,移动端也逐渐成为各行业商家的争夺之地,程序开发人员也将战场向移动端扩散。本项目为Android移动端的软件,用于管理教室信息,本软件可以保存教室,教学楼信息,也可以对所存储信息进行增删查改操作,本项目的开发是为方便Android移动端用户提供有关教学楼管理的服务。
1.3软件相关信息
软件名称:教室信息管理
软件版本:1.0
适用平台:Android4.0及以上
二.项目需求
2.1概述
2.1.1编写目的
本文档的编写主要是描述本软件需要实现的功能,列出本软件的需求点,作为开发人员开发目标系统及编程所需的基础,也作为项目完成验收时作为产品是否符合要求的一个参考。本文档的预期读者为开发人员,用户。
2.1.2项目概述
本项目的目标受众为所有Android用户,Android系统现在已经成为相当主流的移动端系统,本系统作为Android端的应用软件,有很广泛的受众群。本软件主要为用户提供校园内或其他场合的有关空间管理,包括增删查改等操作,待开发软件名称:教室信息管理。
2.1.3运行环境
Android 4.0及以上
2.2项目需求分析
2.2.1需求分析
平时同学们自习或者使用教室时,需要提前去到教学楼进行查看,有些麻烦,也浪费时间和精力。在此APP上可以实时更新教室使用情况,方便借用管理本项目为Android移动端的软件,用于管理教室信息,本软件可以保存教室,教学楼信息,也可以对所存储信息进行增删查改操作,方便Android移动端用户提供有关教学楼管理的服务。
2.2.2 流程图
三 具体实现
3.1 代码框架
该项目包括Activity 分别是 :
SplashActivity app的启动界面,添加启动界面的意义是时主要内容的出现有一个过度
AddRoomActivity 添加有关信息,进行增加操作。
3.2 部分代码
3.2.1 RoomListActivity.java
package com.example.liu.roommanager;
import java.util.ArrayList;
import java.util.List;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
import Room.Room;
import RoomDBHelper.RoomDBHelper;
//import AddRoomActivity;
import TableContanst.TableContanst;
public class RoomListActivity extends ListActivity implements
OnClickListener, OnItemClickListener, OnItemLongClickListener {
private static final String TAG = "TestSQLite";
private Button addStudent;
private Cursor cursor;
private SimpleCursorAdapter adapter;
private ListView listView;
private List<Long> list;
private RelativeLayout relativeLayout;
private Button searchButton;
private Button selectButton;
private Button deleteButton;
private Button selectAllButton;
private Button canleButton;
private LinearLayout layout;
private RoomDao dao;
private Room room;
private Boolean isDeleteList = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_room_main);
Log.e(TAG, "onCreate");
list = new ArrayList<Long>();
room = new Room();
dao = new RoomDao(new RoomDBHelper(this));
addStudent = (Button) findViewById(R.id.btn_add_student);
searchButton = (Button) findViewById(R.id.bn_search_id);
selectButton = (Button) findViewById(R.id.bn_select);
deleteButton = (Button) findViewById(R.id.bn_delete);
selectAllButton = (Button) findViewById(R.id.bn_selectall);
canleButton = (Button) findViewById(R.id.bn_canel);
layout = (LinearLayout) findViewById(R.id.showLiner);
relativeLayout=(RelativeLayout) findViewById(R.id.RelativeLayout);
listView = getListView();
// 为按键设置监听
addStudent.setOnClickListener(this);
searchButton.setOnClickListener(this);
selectButton.setOnClickListener(this);
deleteButton.setOnClickListener(this);
canleButton.setOnClickListener(this);
selectAllButton.setOnClickListener(this);
listView.setOnItemClickListener(this);
listView.setOnItemLongClickListener(this);
listView.setOnCreateContextMenuListener(this);
}
// 调用load()方法将数据库中的所有记录显示在当前页面
@Override
protected void onStart() {
super.onStart();
load();
}
public void onClick(View v) {
// 跳转到添加信息的界面
if (v == addStudent) {
startActivity(new Intent(RoomListActivity.this, AddRoomActivity.class));
} else if (v == searchButton) {
// 跳转到查询界面
startActivity(new Intent(this, RoomSearch.class));
} else if (v == selectButton) {
// 跳转到选择界面
isDeleteList = !isDeleteList;
if (isDeleteList) {
checkOrClearAllCheckboxs(true);
} else {
showOrHiddenCheckBoxs(false);
}
} else if (v == deleteButton) {
// 删除数据
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
long id = list.get(i);
Log.e(TAG, "delete id=" + id);
int count = dao.deleteStudentById(id);
}
dao.closeDB();
load();
}
} else if (v == canleButton) {
// 点击取消,回到初始界面
load();
layout.setVisibility(View.GONE);
isDeleteList = !isDeleteList;
} else if (v == selectAllButton) {
// 全选,如果当前全选按钮显示是全选,则在点击后变为取消全选,如果当前为取消全选,则在点击后变为全选
selectAllMethods();
}
}
// 创建菜单
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
MenuInflater inflater = new MenuInflater(this); //getMenuInflater();
inflater.inflate(R.menu.menu, menu);
}
// 对菜单中的按钮添加响应时间
@Override
public boolean onContextItemSelected(MenuItem item) {
int item_id = item.getItemId();
room = (Room) listView.getTag();
Log.v(TAG, "TestSQLite++++room+" + listView.getTag() + "");
final long student_id = room.getId();
Intent intent = new Intent();
Log.v(TAG, "TestSQLite+++++++id"+student_id);
switch (item_id) {
/* 添加
case R.id.add:
startActivity(new Intent(this, AddRoomActivity.class));
break;*/
// 删除
case R.id.delete:
deleteStudentInformation(student_id);
break;
case R.id.look:
// 查看学生信息
Log.v(TAG, "TestSQLite+++++++look"+ room +"");
intent.putExtra("room", room);
intent.setClass(this, ShowRoomActivity.class);
this.startActivity(intent);
break;
case R.id.write:
// 修改学生信息
intent.putExtra("room", room);
intent.setClass(this, AddRoomActivity.class);
this.startActivity(intent);
break;
default:
break;
}
return super.onContextItemSelected(item);
}
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id)
{
Room room = (Room) dao.getStudentFromView(view, id);
listView.setTag(room);
registerForContextMenu(listView);
return false;
}
// 点击一条记录是触发的事件
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
if (!isDeleteList) {
room = dao.getStudentFromView(view, id);
Log.e(TAG, "room*****" + dao.getStudentFromView(view, id));
Intent intent = new Intent();
intent.putExtra("room", room);
intent.setClass(this, ShowRoomActivity.class);
this.startActivity(intent);
} else {
CheckBox box = (CheckBox) view.findViewById(R.id.cb_box);
box.setChecked(!box.isChecked());
list.add(id);
deleteButton.setEnabled(box.isChecked());
}
}
// 自定义一个加载数据库中的全部记录到当前页面的无参方法
public void load() {
RoomDBHelper roomDBHelper = new RoomDBHelper(
RoomListActivity.this);
SQLiteDatabase database = roomDBHelper.getWritableDatabase();
cursor = database.query(TableContanst.STUDENT_TABLE, null, null, null,
null, null, TableContanst.StudentColumns.MODIFY_TIME + " desc");
startManagingCursor(cursor);
adapter = new SimpleCursorAdapter(this, R.layout.room_list_item,
cursor, new String[] { TableContanst.StudentColumns.ID,
TableContanst.StudentColumns.NAME,
TableContanst.StudentColumns.AGE,
TableContanst.StudentColumns.SEX,
TableContanst.StudentColumns.LIKES,
TableContanst.StudentColumns.PHONE_NUMBER,
TableContanst.StudentColumns.TRAIN_DATE }, new int[] {
R.id.tv_stu_id, R.id.tv_stu_name, R.id.tv_stu_age,
R.id.tv_stu_sex, R.id.tv_stu_likes, R.id.tv_stu_phone,
R.id.tv_stu_traindate });
listView.setAdapter(adapter);
}
// 全选或者取消全选
private void checkOrClearAllCheckboxs(boolean b) {
int childCount = listView.getChildCount();
Log.e(TAG, "list child size=" + childCount);
for (int i = 0; i < childCount; i++) {
View view = listView.getChildAt(i);
if (view != null) {
CheckBox box = (CheckBox) view.findViewById(R.id.cb_box);
box.setChecked(!b);
}
}
showOrHiddenCheckBoxs(true);
}
// 显示或者隐藏自定义菜单
private void showOrHiddenCheckBoxs(boolean b) {
int childCount = listView.getChildCount();
Log.e(TAG, "list child size=" + childCount);
for (int i = 0; i < childCount; i++) {
View view = listView.getChildAt(i);
if (view != null) {
CheckBox box = (CheckBox) view.findViewById(R.id.cb_box);
int visible = b ? View.VISIBLE : View.GONE;
box.setVisibility(visible);
layout.setVisibility(visible);
deleteButton.setEnabled(false);
}
}
}
// 自定义一个利用对话框形式进行数据的删除
private void deleteStudentInformation(final long delete_id) {
// 利用对话框的形式删除数据
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("信息删除")
.setMessage("确定删除所选记录?")
.setCancelable(false)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
int raws = dao.deleteStudentById(delete_id);
layout.setVisibility(View.GONE);
isDeleteList = !isDeleteList;
load();
if (raws > 0) {
Toast.makeText(RoomListActivity.this, "删除成功!",
Toast.LENGTH_LONG).show();
} else
Toast.makeText(RoomListActivity.this, "删除失败!",
Toast.LENGTH_LONG).show();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
// 点击全选事件时所触发的响应
private void selectAllMethods() {
// 全选,如果当前全选按钮显示是全选,则在点击后变为取消全选,如果当前为取消全选,则在点击后变为全选
if (selectAllButton.getText().toString().equals("全选")) {
int childCount = listView.getChildCount();
for (int i = 0; i < childCount; i++) {
View view = listView.getChildAt(i);
if (view != null) {
CheckBox box = (CheckBox) view.findViewById(R.id.cb_box);
box.setChecked(true);
deleteButton.setEnabled(true);
selectAllButton.setText("取消全选");
}
}
} else if (selectAllButton.getText().toString().equals("取消全选")) {
checkOrClearAllCheckboxs(true);
deleteButton.setEnabled(false);
selectAllButton.setText("全选");
}
}
}
3.2.2 AddRoomActivity
package com.example.liu.roommanager;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import Room.Room;
import RoomDBHelper.RoomDBHelper;
import TableContanst.TableContanst;
public class AddRoomActivity extends AppCompatActivity implements OnClickListener {
private static final String TAG = "AddRoomActivity";
private final static int DATE_DIALOG = 1;
private static final int DATE_PICKER_ID = 1;
private TextView idText;
private EditText nameText;
private EditText ageText;
private EditText phoneText;
private EditText dataText;
private RadioGroup group;
private RadioButton button1;
private RadioButton button2;
private CheckBox box1;
private CheckBox box2;
private CheckBox box3;
private Button restoreButton;
private String sex;
private Button resetButton;
private Long student_id;
private RoomDao dao;
private boolean isAdd = true;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_room);
idText = (TextView) findViewById(R.id.tv_stu_id);
nameText = (EditText) findViewById(R.id.et_name);
ageText = (EditText) findViewById(R.id.et_age);
button1 = (RadioButton) findViewById(R.id.rb_sex_female);
button2 = (RadioButton) findViewById(R.id.rb_sex_male);
phoneText = (EditText) findViewById(R.id.et_phone);
dataText = (EditText) findViewById(R.id.et_traindate);
group = (RadioGroup) findViewById(R.id.rg_sex);
box1 = (CheckBox) findViewById(R.id.box1);
box2 = (CheckBox) findViewById(R.id.box2);
box3 = (CheckBox) findViewById(R.id.box3);
restoreButton = (Button) findViewById(R.id.btn_save);
resetButton = (Button) findViewById(R.id.btn_clear);
dao = new RoomDao(new RoomDBHelper(this)); // 设置监听 78
restoreButton.setOnClickListener(this);
resetButton.setOnClickListener(this);
dataText.setOnClickListener(this);
checkIsAddStudent();
}
// 检查此时Activity是否用于添加信息
private void checkIsAddStudent() {
Intent intent = getIntent();
Serializable serial = intent.getSerializableExtra(TableContanst.STUDENT_TABLE);
if (serial == null) {
isAdd = true;
dataText.setText(getCurrentDate());
} else {
isAdd = false;
Room s = (Room) serial;
showEditUI(s);
}
}
//显示学员信息更新的UI104
private void showEditUI(Room room) {
// 先将room携带的数据还原到room的每一个属性中去
student_id = room.getId();
String name = room.getName();
int age = room.getAge();
String phone = room.getPhoneNumber();
String data = room.getTrainDate();
String like = room.getLike();
String sex = room.getSex();
if (sex.toString().equals("已借用")) {
button2.setChecked(true);
} else if (sex.toString().equals("未借用")) {
button1.setChecked(true);
}
if (like != null && !"".equals(like)) {
if (box1.getText().toString().indexOf(like) >= 0) {
box1.setChecked(true);
}
if (box2.getText().toString().indexOf(like) >= 0) {
box2.setChecked(true);
}
if (box3.getText().toString().indexOf(like) >= 0) {
box3.setChecked(true);
}
}
// 还原数据
idText.setText(student_id + "");
nameText.setText(name + "");
ageText.setText(age + "");
phoneText.setText(phone + "");
dataText.setText(data + "");
setTitle("信息更新");
restoreButton.setText("更新");
}
public void onClick(View v) {
// 收集数据
if (v == restoreButton) {
if (!checkUIInput()) {// 界面输入验证
return;
}
Room room = getStudentFromUI();
if (isAdd) {
long id = dao.addStudent(room);
dao.closeDB();
if (id > 0) {
Toast.makeText(this, "保存成功, ID=" + id,Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(this, "保存失败,请重新输入!", Toast.LENGTH_SHORT).show();
}
} else if (!isAdd) {
long id = dao.addStudent(room);
dao.closeDB();
if (id > 0) {
Toast.makeText(this, "更新成功",Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(this, "更新失败,请重新输入!",Toast.LENGTH_SHORT).show();
}
}
} else if (v == resetButton) {
clearUIData();
} else if (v == dataText) {
showDialog(DATE_PICKER_ID);
}
}
// 清空界面的数据176
private void clearUIData() {
nameText.setText("");
ageText.setText("");
phoneText.setText("");
dataText.setText("");
box1.setChecked(false);
box2.setChecked(false);
group.clearCheck();
}
// 收集界面输入的数据,并将封装成room对象
private Room getStudentFromUI() {
String name = nameText.getText().toString();
int age = Integer.parseInt(ageText.getText().toString());
String sex = ((RadioButton) findViewById(group
.getCheckedRadioButtonId())).getText().toString();
String likes = "";
if (box1.isChecked()) { // basketball, football football
likes += box1.getText();
}
if (box2.isChecked()) {
if (likes.equals("")) {
likes += box2.getText();
} else {
likes += "," + box2.getText();
}
if (likes.equals("")) {
likes += box3.getText();
} else {
likes += "," + box3.getText();
}
}
String trainDate = dataText.getText().toString();
String phoneNumber = phoneText.getText().toString();
String modifyDateTime = getCurrentDateTime();
Room s=new Room(name, age, sex, likes, phoneNumber, trainDate,
modifyDateTime);
if (!isAdd) {
s.setId(Integer.parseInt(idText.getText().toString()));
dao.deleteStudentById(student_id);
}
return s;
}
// * 得到当前的日期时间
private String getCurrentDateTime() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
return format.format(new Date());
}
// * 得到当前的日期
private String getCurrentDate() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return format.format(new Date());
}
//验证用户是否按要求输入了数据
private boolean checkUIInput() {
String name = nameText.getText().toString();
String age = ageText.getText().toString();
int id = group.getCheckedRadioButtonId();
String message = null;
View invadView = null;
if (name.trim().length() == 0) {
message = "请输入教室!";
invadView = nameText;
} else if (age.trim().length() == 0) {
message = "请输入楼栋!";
invadView = ageText;
} else if (id == -1) {
message = "请选择借用情况!";
}
if (message != null) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
if (invadView != null)
invadView.requestFocus();
return false;
} return true; }
//时间的监听与事件
private DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
dataText.setText(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
}
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_PICKER_ID:
return new DatePickerDialog(this, onDateSetListener, 2011, 8, 14);
}
return null;
}
}
3.2.3 TableContast.java
package TableContanst;
public final class TableContanst {
public static final String STUDENT_TABLE = "student";
public static final class StudentColumns {
public static final String ID = "_id";
public static final String NAME = "name";
public static final String AGE = "age";
public static final String SEX = "sex";
public static final String LIKES = "likes";
public static final String PHONE_NUMBER = "phone_number";
public static final String TRAIN_DATE = "train_date";
public static final String MODIFY_TIME = "modify_time";
}
}
3.2.4 RoomDao.java
package com.example.liu.roommanager;
import android.content.ContentValues;
import android.database.Cursor;
import android.view.View;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import Room.Room;
import RoomDBHelper.RoomDBHelper;
import TableContanst.TableContanst;
public class RoomDao {
private RoomDBHelper dbHelper;
private Cursor cursor;
public RoomDao(RoomDBHelper dbHelper) {
this.dbHelper = dbHelper;
}
// 添加一个Room对象数据到数据库表
public long addStudent(Room s) {
ContentValues values = new ContentValues();
values.put(TableContanst.StudentColumns.NAME, s.getName());
values.put(TableContanst.StudentColumns.AGE, s.getAge());
values.put(TableContanst.StudentColumns.SEX, s.getSex());
values.put(TableContanst.StudentColumns.LIKES, s.getLike());
values.put(TableContanst.StudentColumns.PHONE_NUMBER, s.getPhoneNumber());
values.put(TableContanst.StudentColumns.TRAIN_DATE, s.getTrainDate());
values.put(TableContanst.StudentColumns.MODIFY_TIME, s.getModifyDateTime());
return dbHelper.getWritableDatabase().insert(TableContanst.STUDENT_TABLE, null, values);
}
// 删除一个id所对应的数据库表room的记录
public int deleteStudentById(long id) {
return dbHelper.getWritableDatabase().delete(TableContanst.STUDENT_TABLE,
TableContanst.StudentColumns.ID + "=?", new String[] { id + "" });
}
// 更新一个id所对应数据库表room的记录
public int updateStudent(Room s) {
ContentValues values = new ContentValues();
values.put(TableContanst.StudentColumns.NAME, s.getName());
values.put(TableContanst.StudentColumns.AGE, s.getAge());
values.put(TableContanst.StudentColumns.SEX, s.getSex());
values.put(TableContanst.StudentColumns.LIKES, s.getLike());
values.put(TableContanst.StudentColumns.PHONE_NUMBER, s.getPhoneNumber());
values.put(TableContanst.StudentColumns.TRAIN_DATE, s.getTrainDate());
values.put(TableContanst.StudentColumns.MODIFY_TIME, s.getModifyDateTime());
return dbHelper.getWritableDatabase().update(TableContanst.STUDENT_TABLE, values,
TableContanst.StudentColumns.ID + "=?", new String[] { s.getId() + "" });
}
// 查询所有的记录
public List<Map<String,Object>> getAllStudents() {
//modify_time desc
List<Map<String, Object>> data = new ArrayList<Map<String,Object>>();
Cursor cursor = dbHelper.getWritableDatabase().query(TableContanst.STUDENT_TABLE, null, null, null,
null, null, TableContanst.StudentColumns.MODIFY_TIME+" desc");
while(cursor.moveToNext()) {
Map<String, Object> map = new HashMap<String, Object>(8);
long id = cursor.getInt(cursor.getColumnIndex(TableContanst.StudentColumns.ID));
map.put(TableContanst.StudentColumns.ID, id);
String name = cursor.getString(cursor.getColumnIndex(TableContanst.StudentColumns.NAME));
map.put(TableContanst.StudentColumns.NAME, name);
int age = cursor.getInt(cursor.getColumnIndex(TableContanst.StudentColumns.AGE));
map.put(TableContanst.StudentColumns.AGE, age);
String sex = cursor.getString(cursor.getColumnIndex(TableContanst.StudentColumns.SEX));
map.put(TableContanst.StudentColumns.SEX, sex);
String likes = cursor.getString(cursor.getColumnIndex(TableContanst.StudentColumns.LIKES));
map.put(TableContanst.StudentColumns.LIKES, likes);
String phone_number = cursor.getString(cursor.getColumnIndex(TableContanst.StudentColumns.PHONE_NUMBER));
map.put(TableContanst.StudentColumns.PHONE_NUMBER, phone_number);
String train_date = cursor.getString(cursor.getColumnIndex(TableContanst.StudentColumns.TRAIN_DATE));
map.put(TableContanst.StudentColumns.TRAIN_DATE, train_date);
String modify_time = cursor.getString(cursor.getColumnIndex(TableContanst.StudentColumns.MODIFY_TIME));
map.put(TableContanst.StudentColumns.MODIFY_TIME, modify_time);
data.add(map);
}
return data;
}
//模糊查询一条记录
public Cursor findStudent(String name){
Cursor cursor = dbHelper.getWritableDatabase().query(TableContanst.STUDENT_TABLE, null, "name like ?",
new String[] { "%" + name + "%" }, null, null, null,null);
return cursor; }
//按ming进行排序
public Cursor sortByName(){
Cursor cursor = dbHelper.getWritableDatabase().query(TableContanst.STUDENT_TABLE, null,null,
null, null, null,TableContanst.StudentColumns.NAME);
return cursor; }
//按日期进行排序
public Cursor sortByTrainDate(){
Cursor cursor = dbHelper.getWritableDatabase().query(TableContanst.STUDENT_TABLE, null,null,
null, null, null,TableContanst.StudentColumns.TRAIN_DATE);
return cursor;
}
//按进行排序
public Cursor sortByID(){
Cursor cursor = dbHelper.getWritableDatabase().query(TableContanst.STUDENT_TABLE, null,null,
null, null, null,TableContanst.StudentColumns.ID);
return cursor; }
public void closeDB() {
dbHelper.close(); } //自定义的方法通过View和Id得到一个student对象
public Room getStudentFromView(View view, long id) {
TextView nameView = (TextView) view.findViewById(R.id.tv_stu_name);
TextView ageView = (TextView) view.findViewById(R.id.tv_stu_age);
TextView sexView = (TextView) view.findViewById(R.id.tv_stu_sex);
TextView likeView = (TextView) view.findViewById(R.id.tv_stu_likes);
TextView phoneView = (TextView) view.findViewById(R.id.tv_stu_phone);
TextView dataView = (TextView) view.findViewById(R.id.tv_stu_traindate);
String name = nameView.getText().toString();
int age = Integer.parseInt(ageView.getText().toString());
String sex = sexView.getText().toString();
String like = likeView.getText().toString();
String phone = phoneView.getText().toString();
String data = dataView.getText().toString();
Room room = new Room(id, name, age, sex, like, phone, data,null);
return
room;
}
}
3.3 手机截图
3.3.1欢迎界面
3.3.2教室使用情况
3.3.3删、改信息
3.3.4修改信息
3.3.5查询信息
四、总结
通过这个项目,我们进一步掌握了APP的开发,对APP开发的具体操作过程有了进一步的认识。我们提高了自己的实际操作、编写代码的能力,也将学到的理论知识应用到了实际之中。但是仍有不足之处,这个APP仍存在一定的可改进之处,功能仍可进一步完善。总体来说,我们小组团结协作、分工明确,愉快的完成了这个APP的开发,这对我们日后的工作有很大的帮助。