美文网首页
用Litepal数据库实现记住密码及密码自动补全

用Litepal数据库实现记住密码及密码自动补全

作者: 今天也要努力呀y | 来源:发表于2019-09-25 20:35 被阅读0次

我当时想实现记住密码功能,就上网上查询,网上感觉全都是SharePreference存储,我用那个用的不多,就想着用Litepal存储吧,因为litepal我用的还是挺熟练的
总体思路讲一下子
1.首先我新建了Bean表Saved_Student,专门用来存储要记住密码的用户
2.然后如果你在登录时点击了记住密码(当然首先你的账户密码得是对的),就把这个存储下来
3.关于自动补全:
(1)首先我从Save_Student把所有已经存储的了学生添加到list里面去(为了避免重复,在之前先清空一波)
(2)然后再添加到一个arraylist中,要避免重复添加元素
(3)配置一个adapter,同时为了实现代码自动补全,我添加了一个edittext的监听
嗯,思路就是这样子,代码在下面按顺序放置

public class Saved_Student extends DataSupport {
    String account;
    String password;

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

 if (remember_password.isChecked()) {
                                Saved_Student saved_student = new Saved_Student();
                                saved_student.setAccount(student.getStudent_number());
                                saved_student.setPassword(student.getID_password());
                                saved_student.save();
                                list.add(saved_student);
                            }
list.clear();
        List<Saved_Student> list1 = DataSupport.findAll(Saved_Student.class);
        for (Saved_Student saved_student : list1) {
            list.add(saved_student);
        }
for (Saved_Student saved_student : list) {
            if (!arrayList.contains(saved_student.getAccount()))
                arrayList.add(saved_student.getAccount());
            //Log.e(TAG,"--------------"+test[i]);
        }
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
        //输入3位自动补全
        account.setThreshold(3);
        account.setAdapter(adapter);
        account.addTextChangedListener(textWatcher);

    }

    TextWatcher textWatcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {

            mess = account.getText().toString();
            complete();
        }
    };
private void complete() {
        //List<Saved_Student> saved_studentList = DataSupport.where("account = ?", mess).find(Saved_Student.class);
        //Log.e(TAG, "" + "++=+=+++" + saved_studentList.size());
        for (int i = 0; i < list.size(); i++) {
            //Log.e(TAG, list.get(i).getAccount());
            if (list.get(i).getAccount().equals(mess)) {
                password.setText(list.get(i).getPassword());
                flag1_log = 1;
                flag_right = 1;
            }
        }

    }

相关文章

网友评论

      本文标题:用Litepal数据库实现记住密码及密码自动补全

      本文链接:https://www.haomeiwen.com/subject/pmpxuctx.html