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你還應該檢查'運行'和'應用'。 :) –
非常感謝你 –