ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

开源安卓项目《Fly密码管理》适合毕设、课设、自用

2021-05-24 21:59:19  阅读:249  来源: 互联网

标签:Fly 毕设 课设 setVisibility setText isEmpty void StringUtils View


开源安卓项目《Fly密码管理》适合毕设、课设、自用


前言:一直想开发一款储存账号密码的app,看了一下市面上密码管理的app,说实话不太敢用,都有后台把你的账号密码都存储在他们的后台服务器里以及各种五花八门的广告,SO,我得这款APP,完全没有联网功能、也没有任何获取隐私的权限、只需要你放心把密码存在这个APP上,然后可以自己设置一个启动密码。完完全全的自己掌控的APP。


1.启动页面

在这里插入图片描述
核心代码:就是一个普通的启动倒计时页面

2.登录页面

在这里插入图片描述
说明:第一次启动默认密码是0207,后面可以自己更改成自己的密码
在这里插入图片描述
实现输入密码的核心代码:

 btnDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String data3 = tv3.getText().toString().trim();
                String data2 = tv2.getText().toString().trim();
                String data1 = tv1.getText().toString().trim();

                if (!StringUtils.isEmpty(data3) && !StringUtils.isEmpty(data2) && !StringUtils.isEmpty(data1)){
                    tv3.setText("");
                }

                if (StringUtils.isEmpty(data3) && !StringUtils.isEmpty(data2) && !StringUtils.isEmpty(data1)){
                    tv2.setText("");
                }

                if (StringUtils.isEmpty(data3) && StringUtils.isEmpty(data2) && !StringUtils.isEmpty(data1)){
                    tv1.setText("");
                }

                if (StringUtils.isEmpty(data3) && StringUtils.isEmpty(data2) && StringUtils.isEmpty(data1)){
                    ToastUtils.showToast(CheckActivity.this,"请输入密码!");
                }
            }
        });
private void setText(int i) {
        String data1 = tv1.getText().toString().trim();
        String data2 = tv2.getText().toString().trim();
        String data3 = tv3.getText().toString().trim();
        String data4 = tv4.getText().toString().trim();
        Log.e("--i--",i+"");
        Log.e("--data1--",data1+"");
        Log.e("--data2--",data2+"");
        Log.e("--data3--",data3+"");
        Log.e("--data4--",data4+"");
        if (StringUtils.isEmpty(data1)){
            tv1.setText(i+"");
        }
        if (!StringUtils.isEmpty(data1) && StringUtils.isEmpty(data2)){
            tv2.setText(i+"");
        }
        if (!StringUtils.isEmpty(data2) && StringUtils.isEmpty(data3)){
            tv3.setText(i+"");
        }
        if (!StringUtils.isEmpty(data3) && StringUtils.isEmpty(data4)){
            tv4.setText(i+"");
            strPwd = PrefUtils.getString("pwd","0207",CheckActivity.this);
            String pwd = data1+data2+data3+i;
            if (pwd.equals(strPwd)){
                Intent intent = new Intent(CheckActivity.this,MainActivity.class);
                startActivity(intent);
                finish();
            }else {
                ToastUtils.showToast(CheckActivity.this,"密码输入错误!");
                tv1.setText("");
                tv2.setText("");
                tv3.setText("");
                tv4.setText("");
            }
        }
    }

3.首页

在这里插入图片描述
说明:包括账户密码的分离,一个搜索框,需要注意的是在添加一个账号密码之后,用eventbus来发送消息,更新账户密码的数量。
核心代码:

    //eventbus更新数据
    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onGetMessage(String str){
        if (str.equals("page1APP")){
            Log.e("---page1APP--",str);
            updateUIcount("APP",tv_app);
        }
        if (str.equals("page1网站")){
            Log.e("---page1网站--",str);
            updateUIcount("网站",tv_web);

        }
        if (str.equals("page1游戏")){
            Log.e("---page1游戏--",str);
            updateUIcount("游戏",tv_game);

        }
        if (str.equals("page1生活")){
            Log.e("---page1生活--",str);
            updateUIcount("生活",tv_life);

        }
        if (str.equals("page1工作")){
            Log.e("---page1工作--",str);
            updateUIcount("工作",tv_work);
        }
        if (str.equals("page1银行卡")){
            Log.e("---page1银行卡--",str);
            updateUIcount("银行卡",tv_bank);

        }
        if (str.equals("page1其他")){
            Log.e("---page1其他--",str);
            updateUIcount("其他",tv_other);
        }

    }
    private void updateUIcount(final String cate, final TextView tv) {

        new Thread(new Runnable() {
            @Override
            public void run() {
                final long count = mDao.getCountByCate(cate);
                UIUtils.runOnUIThread(new Runnable() {
                    @Override
                    public void run() {
                        tv.setText("("+count+")");
                    }
                });
            }
        }).start();
    }

4.账号密码列表

在这里插入图片描述
说明:在这个页面可以进行长按删除,也可以进行清空数据,也可以进行添加账户密码,注意在所有这个栏目里面不支持删除和清空操作。
在这里插入图片描述
在这里插入图片描述
核心代码:

    //从数据库获取数据
    private void getDataFromSQl() {
        mDao = AccountDao.getInstance(this);
        mList = mDao.getListAccByCate(mStrCate);
        if (mList.size() == 0){
            tvEmpty.setVisibility(View.VISIBLE);
            recyclerView.setVisibility(View.INVISIBLE);
        }else {
            tvEmpty.setVisibility(View.INVISIBLE);
            recyclerView.setVisibility(View.VISIBLE);
        }
    }
    ConfirmDialog.showDialog(ContentActivity.this, "删除"+title, "你确定要删除"+title+"吗?", new ConfirmDialog.OnConfirmListener() {
                    @Override
                    public void confirm() {
                        String uniquekey = mList.get(p).unkey;
                        mDao.deleteByUniquekey(uniquekey);
                        mList.remove(p);
                        if (mList.size() == 0){
                            tvEmpty.setVisibility(View.VISIBLE);
                            recyclerView.setVisibility(View.INVISIBLE);
                        }else {
                            tvEmpty.setVisibility(View.INVISIBLE);
                            recyclerView.setVisibility(View.VISIBLE);
                            mAdapter.notifyDataSetChanged();
                        }
                        EventBus.getDefault().post("page1"+cate);
                    }

                    @Override
                    public void cancel() {
                    }
                });
    private void initDeleteAll() {
        tvDeleteAll = findViewById(R.id.tv_delete_all);
        tvDeleteAll.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mStrCate.equals("所有")){
                    ToastUtils.showToast(ContentActivity.this,"不允许清空操作...");
                    return;
                }
                if (mDao.isEmpty(mStrCate)){
                    ToastUtils.showToast(ContentActivity.this,"已经为空了...");
                    return;
                }
                ConfirmDialog.showDialog(ContentActivity.this, "情空" + mStrCate, "你确定清空" + mStrCate + "吗?", new ConfirmDialog.OnConfirmListener() {
                    @Override
                    public void confirm() {
                        mDao.deleteByCate(mStrCate);
                        tvEmpty.setVisibility(View.VISIBLE);
                        recyclerView.setVisibility(View.INVISIBLE);
                        EventBus.getDefault().post("page1"+mStrCate);
                    }

                    @Override
                    public void cancel() {

                    }
                });
            }
        });
    }

5.账号密码详情

在这里插入图片描述
修改页面,修改之后进行提交即可
在这里插入图片描述
核心代码:

tvUpdate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String data = tvUpdate.getText().toString().trim();
                if (data.equals("修改")) {
                    tvUpdate.setText("提交");
                    etAcc.setVisibility(View.VISIBLE);
                    etOther.setVisibility(View.VISIBLE);
                    etPwd.setVisibility(View.VISIBLE);
                    tvAcc.setVisibility(View.GONE);
                    tvPwd.setVisibility(View.GONE);
                    tvOther.setVisibility(View.GONE);
                    etPwd.setText(mStrPwd);
                    etOther.setText(mStrOther);
                    etAcc.setText(mStrAcc);

                } else if (data.equals("提交")) {
                    tvUpdate.setText("修改");
                    etAcc.setVisibility(View.GONE);
                    etOther.setVisibility(View.GONE);
                    etPwd.setVisibility(View.GONE);
                    tvAcc.setVisibility(View.VISIBLE);
                    tvPwd.setVisibility(View.VISIBLE);
                    tvOther.setVisibility(View.VISIBLE);
                    mStrAcc = etAcc.getText().toString().trim();
                    mStrOther = etOther.getText().toString().trim();
                    mStrPwd = etPwd.getText().toString().trim();
                    tvOther.setText(mStrOther);
                    tvAcc.setText(mStrAcc);
                    tvPwd.setText(mStrPwd);
                    mDao.updateByUniquekey(mStrUnkey, mStrAcc, mStrPwd, mStrOther, getNowTime());
                    EventBus.getDefault().post("page2");
                }
            }
        });

6.添加账户密码

在这里插入图片描述
在这里插入图片描述
核心代码

 tvOk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String strAcc = etAcc.getText().toString().trim();
                String strPwd = etPwd.getText().toString().trim();
                String strOther = etOther.getText().toString().trim();
                String strTitle = etTitle.getText().toString().trim();
                if (!StringUtils.isEmpty(strAcc) && !StringUtils.isEmpty(strPwd) &&!StringUtils.isEmpty(strTitle)){
                    mDao.addAccont(strTitle+getNowTime(),mStrCate,strTitle,strAcc,strPwd,strOther,getNowTime());
                    etAcc.setText("");
                    etPwd.setText("");
                    etOther.setText("");
                    etTitle.setText("");
                    EventBus.getDefault().post("page1"+mStrCate);
                }else {
                    ToastUtils.showToast(AddActivity.this,"请规范输入!!!");
                }
            }
        });

7.账号密码搜索

在这里插入图片描述
核心代码:

      tvSearch.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final String title = etContent.getText().toString().trim();
                if (StringUtils.isEmpty(title)) {
                    ToastUtils.showToast(SearchActivity.this, "请规范输入!!!");
                    return;
                }
                pb.setVisibility(View.VISIBLE);
                rv.setVisibility(View.INVISIBLE);
                UIUtils.getHandler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        pb.setVisibility(View.INVISIBLE);
                        rv.setVisibility(View.VISIBLE);
                        mList = mDao.findByTitle(title);
                        if (mList == null) {
                            ToastUtils.showToast(SearchActivity.this, "请换一个关键词试试");
                        } else {
                            //关闭软键盘
                            InputMethodManager imm = (InputMethodManager) SearchActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
                            imm.hideSoftInputFromWindow(SearchActivity.this.getCurrentFocus().getWindowToken(), 0);
                            initRv();
                        }
                    }
                }, 300);
            }
        });

8.侧滑栏页面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.设置启动密码

在这里插入图片描述


APP下载《Fly密码管理安卓APP
完整代码下载《Fly密码管理APP安卓完整代码

标签:Fly,毕设,课设,setVisibility,setText,isEmpty,void,StringUtils,View
来源: https://blog.csdn.net/qq_32306361/article/details/117232510

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有