2017-04-12 33 views
-1

我正在嘗試創建一個用戶特定的sharedPreference。我想存儲的所有內容都是佈局背景,具體取決於設置菜單中的內容。如何根據所使用的帳戶存儲和加載sharedPrefence?如何創建用戶特定的SharedPreference?

+0

定義該帳戶唯一的密鑰?即使用用戶名作爲標識符 –

+0

define Account ... – Selvin

+0

這聽起來像是一個最好通過使用SQLite解決的問題。 –

回答

0

您可以添加一個包含用戶信息的值字段嗎?然後你會搜索用戶名,並檢查它的孩子是否有相應的信息。您可能必須將信息存儲爲對象。

如果您使用共享首選項,它應該只包含少量的鍵值對。由於您使用的是本地數據庫,因此建議您將值存儲在那裏。你可以爲你想存儲的每種類型的信息設置一個表格,比如High Scores。您需要一個「USERID」字段,以便在您對數據庫執行搜索時,可以使用where子句指定要搜索的USERID。一旦您搜索了用戶的信息,您就可以將其存儲到共享首選項中,以便更輕鬆地使用並且只有少量數據,而不是每個人的數據。一旦你完成了使用這些信息,你將把信息保存回數據庫。

+0

我正在使用數據庫作爲帳戶。即時通訊新的Android開發,並沒有發現任何可以理解的如何正確地做一個sharedPrefence,所以我不知道如何鏈接這兩個 – Chanter

+0

如果你使用的數據庫,那麼你不能存儲任何共享首選項在那裏?共享首選項用於在本地存儲少量的鍵值對。我發現這個鏈接很好地描述了它,並告訴你如何讀/寫。 https://developer.android.com/training/basics/data-storage/shared-preferences.html查看我的編輯瞭解更多詳情。 – Developer

+0

感謝您的幫助:)非常感謝隊友 – Chanter

0

您可以將您的用戶ID用作SharedPreference的鍵,然後將您的用戶詳細信息作爲對象保存在其值中。 用這種方法可以在本地存儲所有用戶的用戶數據。

/*Save the object in shared Preferences*/ 
    public void saveObjectToPreferences(String key, Object value) { 
     final SharedPreferences prefs = getSharedPreferences(ApplicationConstants.PREF_FILE_CONFIG, Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = prefs.edit(); 
     String jsonValue = new Gson().toJson(value); 
     editor.putString(key, jsonValue); 
     editor.apply(); 
    } 

    /*Get the object from shared Preferences*/ 
    public Object getObjectFromPreferences(String key, Object defaultObj) { 
     final SharedPreferences prefs = getSharedPreferences(ApplicationConstants.PREF_FILE_CONFIG, Context.MODE_PRIVATE); 
     String value = prefs.getString(key, ""); 
     Object object = new Gson().fromJson(value, defaultObj.getClass()); 
     return object; 
    } 

在這些方法中傳遞密鑰中的用戶標識和對象中的詳細信息。它會工作。

+0

您可以做到這一點。您必須轉換爲GSON等格式才能將對象存儲到SharedPrefs中。 –

+0

爲了獲取對象,你可以傳遞null。 – Shivam

相關問題