Say*_*nRC 1 android sharedpreferences kotlin
我对 Kotlin 很陌生。以前,我曾经在活动中声明 SharedPreference,如下所示:
class MainActivity extends AppCompatActivity {
SharedPreferences main;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
main = getSharedPreferences("main", MODE_PRIVATE);
}
}
Run Code Online (Sandbox Code Playgroud)
这使我可以在main整个课程中使用该实例。我想实现类似的功能。我目前正在使用lateinit var:
class MainActivityKotlin : AppCompatActivity() {
lateinit var main : SharedPreferences
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
main = getSharedPreferences("main", Context.MODE_PRIVATE)
}
}
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否是正确的做法。这也是一个var. 据我了解,val通常建议在实例不会更改的情况下使用 a(例如在这种情况下,main初始化后不会更改)。那么这种方法是否正确?
使用lateinit完全没问题。毕竟,它就是为此目的而存在的。
不过,您可以使用一个稍微简洁的解决方案:lazy-init:
val main by lazy { getSharedPreferences("main", Context.MODE_PRIVATE) }
Run Code Online (Sandbox Code Playgroud)
这仅getSharedPreferences()在main第一次引用时调用,然后存储该实例。它类似于 Java 中的处理方式,但您不需要拆分行。
| 归档时间: |
|
| 查看次数: |
2184 次 |
| 最近记录: |