您的位置:首页 > 移动开发 > Android开发

Android 的多账号登陆

2016-01-13 20:12 555 查看
最近因为工作上的原因做了一个多账号登陆,很简单的东西做的并不是很好,所以就需要把这个东西重新捋一下,重新学习一下。

具体就是跟QQ的的多账号登陆差不多,我的基本思路其实就是用sharedpreference,当然数据库是肯定可以的。

直接说思路,因为是多个账号,肯定需要一个数组或者集合来盛放,而且因为是要保存账号和集合两个东西,就需要map

private SharedPreferences sPreferences;
private Map<String, String> map;


读取账号和密码

// 读取已经记住的用户名与密码
sPreferences = getSharedPreferences("session", MODE_PRIVATE);
map = (Map<String, String>) sPreferences.getAll();
List<String> list = new ArrayList<String>();

for (int i = 0; i < (map.size() / 2); i++) {
String name = sPreferences.getString("name" + i, "");
list.add(name);
}


然后读取账号密码就该保存下来了

private void saveUser() {
// 若是第二次打开软件时,将map在size赋给i,若是不是,则i只要实现i++
if (i == 0) {
i = map.size() / 2;
}
String name = etUserName.getText().toString().trim();
String pwd = etPassword.getText().toString().trim();
// 迭代器遍历map
Set<Entry<String, String>> entryset = map.entrySet();
Iterator iter = entryset.iterator();
while (iter.hasNext()) {
//迭代查询为false就是证明没有保存过用户map为空
if (iter.hasNext()) {
Entry<String, String> entry = (Entry<String, String>) iter.next();
if (entry.toString().contains(name)) {
isSave = false;
break;
} else {
isSave = true;
}
}

}
if (isSave.equals(true)) {
if (!"".equals(name) && !"".equals(pwd)) {
sPreferences.edit().putString("name" + i, name)
.putString("pwd" + i, pwd).commit();
i++;
}
}

}


这里有个关于是否会重复保存多个想通账号的问题,在里面迭代的时候会处理这个问题,总结下来就是三步

创建一个sharedpreference来保存你想保存的东西

读取你要保存的东西

保存你想保存的东西

终于又写了一篇博客,抓紧学习,抓紧进步
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 多帐号保存