1
everyone!Android的内容提供者由Kotlin提供
我在Android中为练习Kotlin创建了一个辅助应用程序。我创建了一个这样的供应商:
class TestProvider : ContentProvider() {
companion object {
val sUriMatcher = UriMatcher(UriMatcher.NO_MATCH)
val MATCH_WITH_TEST = 0
init {
sUriMatcher.addURI("$APPLICATION_ID.provider", TestEntity.TABLE_NAME, MATCH_WITH_TEST)
}
}
var mDatabaseHelper: LocalSQLiteHelper? = null
override fun onCreate(): Boolean {
mDatabaseHelper = LocalSQLiteHelper(context)
return true
}
override fun insert(uri: Uri?, values: ContentValues?): Uri? {
if (mDatabaseHelper != null && !mDatabaseHelper?.writableDatabase?.isReadOnly) {
}
return uri
}
}
你看!内容提供者必须包含一个数据库帮助器。此数据库帮助程序仅在父类的onCreate()
方法中创建。
所以现在我想检查writableDatabase
是不是只读数据库。因为mDatabaseHelper
是LocalSQLiteHelper?
所以!mDatabaseHelper?.writableDatabase?.isReadOnly
代码返回Boolean?
哪些不接受Kotlin if
控制语句。
有没有人对我有同样的问题?
更新:
我找到了解决方案,通过使用:
val database: SQLiteDatabase = mDatabaseHelper?.writableDatabase as SQLiteDatabase
它工作,但我不知道为什么?
谢谢你的帮助。让我先搜索关于'let'的文档。 –
@TrầnĐứcTâm你还应该检查'运行'和'应用'。 :) –
非常感谢你 –