2016-02-11 21 views
0

我想存储在共享偏好的三个值储存2个字符串,并使用HashMap的

我可以将整数作为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; 
    } 
+0

可能的重复[如何在共享偏好在android中保存和获取整数值?](http://stackoverflow.com/questions/17916873/how-to-save-and-fetch-integer-value-in- Android中的共享偏好) –

+0

get函数的第二个参数就是默认值。这是返回的值,以防先前未保存首选项。 –

+0

@ShamasS如果我使用getInt,应该使用什么默认值? – Nilay

回答

0

你声明的HashMap()为包含String对象,所以,不,你不能真的只是存储在那里整数的映射。但是,如果您愿意,您可以将整数转换为字符串。由于getInt()返回原始int,你应该使用静态方法Integer.toString(valuetomakeintoastring)

第二个值在调用getInt()是,如果KEY价值未在首发现,应返回默认值。使用一些不能混淆的值作为应用程序的有效值。

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

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

+0

谢谢你... user.put(KEY_ID,Integer.toString(pref.getInt(KEY_ID,));正在为我工​​作 – Nilay

+0

非常好,很高兴听到它如果我的答案解决了你的问题,请记住“接受”答案(点击我答案旁边的复选标记),这是在堆栈溢出中表达谢意的最佳方式!:) – rothloup