Vas*_*lev 3 android sharedpreferences kotlin
我试图存储一个布尔值,每次单击按钮时都会更改该值。我想使用共享首选项来执行此操作,但是我一直遇到此错误:未解析的引用:getPreferences
这是我的代码:
btnStyle.setOnClickListener() {
styleHasChanged = !styleHasChanged;
if(styleHasChanged == true){
btnStyle.setText("true")
}else{
btnStyle.setText("false")
}
// AppUtil.saveConfig(activity, config)
// EventBus.getDefault().post(ReloadDataEvent())
var sharedPref : SharedPreferences = this.getPreferences(Context.MODE_PRIVATE);
var editor = sharedPref.edit()
editor.putBoolean("bla", styleHasChanged)
editor.commit()
}
Run Code Online (Sandbox Code Playgroud)
为了 KOTLIN
如果活动然后使用 this@ActivityName
var sharedPref : SharedPreferences = this@ActivityName.getPreferences(Context.MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)
如果片段然后使用 activity!!
var sharedPref : SharedPreferences = activity!!.getPreferences(Context.MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)
这是一个Fragment还是一个Activity?这似乎是用片段或其他地方编写的代码。因为getPreferences()是 Activity 的方法,你需要有 Activity 的实例来调用它。
只需有一个 Activity 实例并按如下方式调用它。片段示例:-
btnStyle.setOnClickListener() {
styleHasChanged = !styleHasChanged;
if(styleHasChanged == true){
btnStyle.setText("true")
}else{
btnStyle.setText("false")
}
val sharedPref : SharedPreferences?= activity?.getPreferences(Context.MODE_PRIVATE);
sharedPref?.edit()?.putBoolean("bla", styleHasChanged)?.apply()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3155 次 |
| 最近记录: |