我是中原工学院的刘宇航鸿蒙大作业如下:
简记手账的主要功实现能有用户的注册,计事以及记账功能
一,效果运行截图
二,代码实现
1,主界面
public class BaseAbility extends FractionAbility {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
// super.setMainRoute(BaseAbilitySlice.class.getName());
// 隐藏状态栏、设置状态栏和导航栏透明
getWindow().addFlags(WindowManager.LayoutConfig.MARK_FULL_SCREEN |
WindowManager.LayoutConfig.MARK_TRANSLUCENT_STATUS |
WindowManager.LayoutConfig.MARK_TRANSLUCENT_NAVIGATION);
// 隐藏导航栏(部分系统无效)
getWindow().setStatusBarVisibility(Component.HIDE);
}
//打印日志
protected void showLog(String msg) {
HiLogLabel label = new HiLogLabel(HiLog.LOG_APP, 0x00201, "DEBUG_INFO");
HiLog.error(label, msg);
}
//显示气泡
protected void showToast(String msg) {
Toast.show(BaseAbility.this,msg,true);
}
public void startActivity(String targetAbilityName, Map<String, String> params) {
startActivity(targetAbilityName, false, params);
}
public void startActivity(String targetAbilityName) {
startActivity(targetAbilityName,false);
}
public void startActivity(String targetAbilityName,boolean isFinish) {
startActivity(targetAbilityName,isFinish,null);
}
protected void startActivity(String targetAbilityName, boolean isFinish, Map<String, String> params) {
Intent secondIntent = new Intent();
// 指定待启动FA的bundleName和abilityName
Operation operation = new Intent.OperationBuilder()
.withDeviceId("")
.withBundleName(getBundleName())//这个必须填包名
.withAbilityName(targetAbilityName)//这个必须填包名+类名
.build();
secondIntent.setOperation(operation);
if (params != null) {
for (String key : params.keySet()) {
secondIntent.setParam(key, params.get(key));
}
}
// 通过AbilitySlice的startAbility接口实现启动另一个页面
startAbility(secondIntent);
if (isFinish) {
terminateAbility();
}
}
}
2,用户的注册以及登录
public static boolean addUser(String name, String pwd, String sex, String worker, String age) {
ValuesBucket values = new ValuesBucket();
// values.putInteger("id", 1);
values.putString("name", name);
values.putString("pwd", pwd);
values.putString("sex", sex);
values.putString("worker", worker);
values.putString("age", age);
long id = store.insert("user", values);
return id != -1;
}
//通过用户名判断用户是否存在
public static boolean isUserExits(String name) {
String[] columns = new String[]{"id", "name", "pwd", "sex", "worker", "age"};
RdbPredicates rdbPredicates = new RdbPredicates("user").equalTo("name", name);
ResultSet resultSet = store.query(rdbPredicates, columns);
return resultSet.getRowCount() > 0;
}
//通过用户名密码判断能否登陆成功
public static boolean login(String name, String pwd) {
String[] columns = new String[]{"id", "name", "pwd"};
RdbPredicates rdbPredicates = new RdbPredicates("user").equalTo("name", name).equalTo("pwd", pwd);
ResultSet resultSet = store.query(rdbPredicates, columns);
if (resultSet.getRowCount() > 0) {
resultSet.goToNextRow();
int id = resultSet.getInt(resultSet.getColumnIndexForName("id"));
System.out.println(">>>>>>>>uid>>>>>>>>>>>>>>>" + id);
MyApplication.getInstance().setUid(id);
return true;
}
return false;
}
3,记账功能实现
//添加收入类型
public static boolean addMoneyInType(NoteType noteType) {
ValuesBucket values = new ValuesBucket();
values.putString("name", noteType.getName());
values.putString("descr", noteType.getDescr());
values.putString("uid", MyApplication.getInstance().getUid() + "");
long id = store.insert("moneyInType", values);
return id != -1;
}
//添加支出类型
public static boolean addMoneyOutType(NoteType noteType) {
ValuesBucket values = new ValuesBucket();
values.putString("name", noteType.getName());
values.putString("descr", noteType.getDescr());
values.putString("uid", MyApplication.getInstance().getUid() + "");
long id = store.insert("moneyOutType", values);
return id != -1;
}
//添加收入记录
public static boolean addMoneyIn(NoteBean imageBean) {
ValuesBucket values = new ValuesBucket();
values.putInteger("uid", imageBean.getUid());
values.putString("title", imageBean.getTitle());
values.putString("time", imageBean.getTime());
values.putString("content", imageBean.getContent());
values.putString("type", imageBean.getType() + "");
long id = store.insert("moneyIn", values);
return id != -1;
}
//添支出记录
public static boolean addMoneyOut(NoteBean imageBean) {
ValuesBucket values = new ValuesBucket();
values.putInteger("uid", imageBean.getUid());
values.putString("title", imageBean.getTitle());
values.putString("time", imageBean.getTime());
values.putString("content", imageBean.getContent());
values.putString("type", imageBean.getType() + "");
long id = store.insert("moneyOut", values);
return id != -1;
}
4,记事功能实现
//添加笔记
public static boolean addNote(NoteBean imageBean) {
ValuesBucket values = new ValuesBucket();
values.putInteger("uid", imageBean.getUid());
values.putString("title", imageBean.getTitle());
values.putString("time", imageBean.getTime());
values.putString("content", imageBean.getContent());
values.putString("type", imageBean.getType() + "");
long id = store.insert("note", values);
return id != -1;
}
5,用户数据更新
public static List<NoteBean> getAllMoneyOut(int type) {
String[] columns = new String[]{"id", "uid", "title", "content", "type", "time"};
RdbPredicates rdbPredicates = new RdbPredicates("moneyOut").equalTo("type", type);
ResultSet resultSet = store.query(rdbPredicates, columns);
List<NoteBean> images = new ArrayList<>();
while (resultSet.goToNextRow()) {
int id = resultSet.getInt(resultSet.getColumnIndexForName("id"));
int uid = resultSet.getInt(resultSet.getColumnIndexForName("uid"));
String title = resultSet.getString(resultSet.getColumnIndexForName("title"));
String content = resultSet.getString(resultSet.getColumnIndexForName("content"));
String type1 = resultSet.getString(resultSet.getColumnIndexForName("type"));
String time = resultSet.getString(resultSet.getColumnIndexForName("time"));
NoteBean bean = new NoteBean();
bean.setId(id);
bean.setUid(uid);
bean.setTitle(title);
bean.setType(Integer.parseInt(type1));
bean.setContent(content);
bean.setTime(time);
images.add(bean);
}
return images;
}
//更新笔记的标题或内容
public static void updateNote(NoteBean noteBean) {
RdbPredicates rdbPredicates = new RdbPredicates("note").equalTo("id", noteBean.getId());
ValuesBucket values = new ValuesBucket();
values.putString("title", noteBean.getTitle());
values.putString("content", noteBean.getContent());
values.putString("time", noteBean.getTime());
//更新数据
store.update(values, rdbPredicates);
}
public static void updateMoneyIn(NoteBean noteBean) {
RdbPredicates rdbPredicates = new RdbPredicates("moneyIn").equalTo("id", noteBean.getId());
ValuesBucket values = new ValuesBucket();
values.putString("title", noteBean.getTitle());
values.putString("content", noteBean.getContent());
//更新数据
store.update(values, rdbPredicates);
}
public static void updateMoneyOut(NoteBean noteBean) {
RdbPredicates rdbPredicates = new RdbPredicates("moneyOut").equalTo("id", noteBean.getId());
ValuesBucket values = new ValuesBucket();
values.putString("title", noteBean.getTitle());
values.putString("content", noteBean.getContent());
//更新数据
store.update(values, rdbPredicates);
}
//根据id删除笔记
public static int deleteImage(int id) {
RdbPredicates rdbPredicates = new RdbPredicates("note")
.equalTo("id", id);
return store.delete(rdbPredicates);
}
public static void initTypes() {
NoteType noteType = new NoteType();
noteType.setName("我的手账");
noteType.setDescr("一本简单而实用的手账");
noteType.setUid(MyApplication.getInstance().getUid());
addType(noteType);
noteType = new NoteType();
noteType.setName("美文收集");
noteType.setDescr("积累阅读中遇到的小美好");
noteType.setUid(MyApplication.getInstance().getUid());
addType(noteType);
}
public static int deleteTypeById(Integer id) {
RdbPredicates rdbPredicates = new RdbPredicates("noteType")
.equalTo("id", id);
return store.delete(rdbPredicates);
}
public static int deleteTypeOutById(Integer id) {
RdbPredicates rdbPredicates = new RdbPredicates("moneyOutType")
.equalTo("id", id);
return store.delete(rdbPredicates);
}
public static int deleteTypeInById(Integer id) {
RdbPredicates rdbPredicates = new RdbPredicates("moneyInType")
.equalTo("id", id);
return store.delete(rdbPredicates);
}
public static int deleteMoneyInById(Integer id) {
RdbPredicates rdbPredicates = new RdbPredicates("moneyIn")
.equalTo("id", id);
return store.delete(rdbPredicates);
}
public static int deleteMoneyOutById(Integer id) {
RdbPredicates rdbPredicates = new RdbPredicates("moneyOut")
.equalTo("id", id);
return store.delete(rdbPredicates);
}
}
6,数据更新
//更新笔记的标题或内容
public static void updateNote(NoteBean noteBean) {
RdbPredicates rdbPredicates = new RdbPredicates("note").equalTo("id", noteBean.getId());
ValuesBucket values = new ValuesBucket();
values.putString("title", noteBean.getTitle());
values.putString("content", noteBean.getContent());
values.putString("time", noteBean.getTime());
//更新数据
store.update(values, rdbPredicates);
}
public static void updateMoneyIn(NoteBean noteBean) {
RdbPredicates rdbPredicates = new RdbPredicates("moneyIn").equalTo("id", noteBean.getId());
ValuesBucket values = new ValuesBucket();
values.putString("title", noteBean.getTitle());
values.putString("content", noteBean.getContent());
//更新数据
store.update(values, rdbPredicates);
}
public static void updateMoneyOut(NoteBean noteBean) {
RdbPredicates rdbPredicates = new RdbPredicates("moneyOut").equalTo("id", noteBean.getId());
ValuesBucket values = new ValuesBucket();
values.putString("title", noteBean.getTitle());
values.putString("content", noteBean.getContent());
//更新数据
store.update(values, rdbPredicates);
}
7,初始化和创建数据库和用户表
public static void init() {
DatabaseHelper helper = new DatabaseHelper(MyApplication.getInstance());
StoreConfig config = StoreConfig.newDefaultConfig("note.db");
RdbOpenCallback callback = new RdbOpenCallback() {
@Override
public void onCreate(RdbStore store) {
//创建类型表
store.executeSql("CREATE TABLE IF NOT EXISTS noteType (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"uid TEXT NOT NULL, " +
"descr TEXT, " +
"name TEXT )");
//创建笔记详情表
store.executeSql("CREATE TABLE IF NOT EXISTS note (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"uid TEXT NOT NULL, " +
"title TEXT NOT NULL, " +
"content EXT NOT NULL," +
"time TEXT, " +
"type TEXT )");
//创建收入类型表
store.executeSql("CREATE TABLE IF NOT EXISTS moneyInType (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"uid TEXT NOT NULL, " +
"descr TEXT, " +
"name TEXT )");
//创建收入详情表
store.executeSql("CREATE TABLE IF NOT EXISTS moneyIn (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"uid TEXT NOT NULL, " +
"title TEXT NOT NULL, " +
"content EXT NOT NULL," +
"time TEXT, " +
"type TEXT )");
//创建支出类型表
store.executeSql("CREATE TABLE IF NOT EXISTS moneyOutType (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"uid TEXT NOT NULL, " +
"descr TEXT, " +
"name TEXT )");
//创建支出详情表
store.executeSql("CREATE TABLE IF NOT EXISTS moneyOut (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"uid TEXT NOT NULL, " +
"title TEXT NOT NULL, " +
"content EXT NOT NULL," +
"time TEXT, " +
"type TEXT )");
store.executeSql("CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, " +
"pwd EXT NOT NULL,sex int, worker text,age int )");
}
@Override
public void onUpgrade(RdbStore store, int oldVersion, int newVersion) {
}
};
store = helper.getRdbStore(config, 1, callback, null);
}
三,源代码链接
链接:https://pan.baidu.com/s/1LMrxrI667kEEt1Qz4iF0Iw
提取码:zut6