【问题标题】:How to save data object in sharedpreference from retrofit2. More information inside如何将数据对象保存在改造 2 中的 sharedpreference 中。内有更多信息
【发布时间】:2021-11-10 13:53:46
【问题描述】:

我有数据类:

@Parcelize
data class CurrentUser(
    @SerializedName("id")
    val id: String,
    @SerializedName("name")
    val firstName: String,
    @SerializedName("surname")
    val lastName: String,
    @SerializedName("avatarPath")
    val avatarPath: String,
    @SerializedName("manager")
    val manager: ResourceManager,
    @SerializedName("department")
    val department: Departments,
    @SerializedName("role")
    val role: Role,
    @SerializedName("email")
    val email: String,
    @SerializedName("status")
    val status: String,
    @SerializedName("country")
    val country: Countries,
    @SerializedName("city")
    val city: Cities,
    @SerializedName("activities")
    val activities: List<String>
) : Parcelable

我正在使用 POST 查询(带有改造 2)并获取有关当前用户的信息:

@GET("url")
    suspend fun getCurrentUser(
        @HeaderMap headers: Map<String, String>
    ) : Response<CurrentUser, Error>

我想将这个当前用户保存到共享的共享首选项中,然后在几个片段中恢复这个当前用户

现在它可以工作了,但是我在 ViewModel 中获取了用户信息,但我想在 SharedPreference 中进行操作

谢谢

【问题讨论】:

    标签: android kotlin sharedpreferences


    【解决方案1】:

    您应该将其转换为 JSON 并将其存储为字符串:

    class SharedPreferenceManager(val context: Context) {
    
        private val PREFS_NAME = "sharedpref"
        val sharedPref: SharedPreferences =
            context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
    
        fun saveUSer(user: CurrentUser) {
            sharedPref.edit().putString("user", Gson().toJson(user)).apply()
        }
    
        fun getUser(): CurrentUser? {
            val data = sharedPref.getString("user", null)
            if (data == null) {
                return null
            }
            return Gson().fromJson(data, CurrentUser::class.java)
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 2019-05-24
      • 1970-01-01
      相关资源
      最近更新 更多