【发布时间】:2019-12-21 14:03:19
【问题描述】:
我正在尝试为 Android 制作一个简单的 Kotlin 类 user,我想保存用户名以在关闭和重新打开应用程序时保留它
import android.content.Context.MODE_PRIVATE
import android.content.SharedPreferences
class User (var username : String){
private val PREFERENCE_FILE_KEY = "AppPreference"
private val KEY_USERNAME= "prefUserNameKey"
private val sharedPref : SharedPreferences = activity?.getSharedPreferences(PREFERENCE_FILE_KEY, MODE_PRIVATE)
fun Save(){
with (sharedPref.edit()) {
putString(KEY_USERNAME, username)
commit()
}
}
fun Load(){
teamname = sharedPref.getString(KEY_SAVENAME, "Default")?:"Default"
}
}
我有第一个问题:
android studio 说sharedPref.getString(KEY_SAVENAME, "Default") 是String?,那么这里的默认值有什么用呢?
其次,我真正的问题是activity? 关键字有一个未解析的引用。
【问题讨论】:
-
activity?.将返回未解析的引用,因为没有为User类提供活动上下文。要解决它,只需传递对活动的引用。 -
为了在 Kotlin 项目中使用 SharedPreferences,我强烈推荐 KotPref:github.com/chibatching/Kotpref