财产必须被初始化或是抽象的
这一定是个愚蠢的问题,但是我对Kotlin真的很陌生,而且我没有找到任何解决办法。
如何声明类字段? 就像我们可以在java中一样:
protected SharedPreferences mSharedPreferences;
后来在onCreate()
:
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
现在我可以在任何地方使用它(在这个基本活动的子类中)。
我试图在科特林做同样的事情:
protected var sharedPreferences : SharedPreferences
在onCreate()
:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
但我得到一个警告:“财产必须被初始化或是抽象的”
- 从android项目中删除所有未使用的资源
- MPAndroidChart实时数据不可见,没有初始界限
- Android的kotlin和房间持久性库不建设
- 为什么不在Kotlin的Android 4.x下运行应用程序?
- 如何使用OnClickListener创建简单的事件//更改文本或颜色
如果你想在构造函数外初始化一个属性,那么你可能正在寻找后期初始化的属性 。 使用lateinit
修饰符声明该属性,这将允许跳过其他需要的初始化程序,并使属性访问失败,并将异常分配给某个有意义的值:
protected lateinit var sharedPreferences: SharedPreferences