我当时想实现记住密码功能,就上网上查询,网上感觉全都是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;
}
}
}
网友评论