使用hashmap在共享首选项中存储两个字符串和一个整数

时间:2016-02-11 05:29:08

标签: android sharedpreferences

我想在共享偏好

中存储三个值

我可以将整数存储为hashmap中的第三个值吗?当我为字符串传递null时,我能为整数传递什么?

public HashMap<String, String> getUserDetails(){
        HashMap<String, String> user = new HashMap<String, String>();
        // user name
        user.put(KEY_NAME, pref.getString(KEY_NAME, null));

        // user email id
        user.put(KEY_PASS, pref.getString(KEY_PASS, null));
        user.put(KEY_ID,pref.getInt(KEY_ID,));//what should i pass here??



        // return user
        return user;
    }

1 个答案:

答案 0 :(得分:0)

您已将HashMap()声明为包含String个对象的地图,因此,不,您实际上不能只存储整数。但是,如果您愿意,可以将整数转换为字符串。由于getInt()返回原始int,您应该使用静态方法Integer.toString(valuetomakeintoastring)

如果在首选项中找不到getInt()值,则调用KEY的第二个值是应返回的默认值。使用一些不能混淆为应用程序有效值的值。

user.put(KEY_ID,Integer.toString(pref.getInt(KEY_ID,<somedefaultintegervalue>));

也许HashMap不是您在这里使用的正确数据结构?也许你真的需要定义一个包含这些值的类,然后创建该类的HashMap?