Android 的多账号登陆

来源:互联网 发布:ubuntu bochs 编辑:程序博客网 时间:2024/05/01 18:05

最近因为工作上的原因做了一个多账号登陆,很简单的东西做的并不是很好,所以就需要把这个东西重新捋一下,重新学习一下。
具体就是跟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++;            }        }    }

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

  1. 创建一个sharedpreference来保存你想保存的东西
  2. 读取你要保存的东西
  3. 保存你想保存的东西
    终于又写了一篇博客,抓紧学习,抓紧进步
0 0
原创粉丝点击