『江鸟中原』鸿蒙应用开发——简记手账
  d0V7KnXpNca6 2023年12月10日 23 0

我是中原工学院的刘宇航鸿蒙大作业如下:

简记手账的主要功实现能有用户的注册,计事以及记账功能

一,效果运行截图

『江鸟中原』鸿蒙应用开发——简记手账_鸿蒙大作业

『江鸟中原』鸿蒙应用开发——简记手账_鸿蒙大作业_02

『江鸟中原』鸿蒙应用开发——简记手账_鸿蒙大作业_03

『江鸟中原』鸿蒙应用开发——简记手账_鸿蒙大作业_04

二,代码实现

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月10日 0

暂无评论

d0V7KnXpNca6