2016-02-11 24 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