我想显示数据库中的所有行,其中指定列的行为空(未插入数据)。为此,我在onCreateLoader
中编写了以下代码:
override fun onCreateLoader(p0: Int, p1: Bundle?): Loader<Cursor> {
val projection = arrayOf(
WalletEntry._ID,
WalletEntry.KEY_TITLE,
WalletEntry.KEY_MONEY,
WalletEntry.KEY_LAST_DATE,
WalletEntry.KEY_LAST_EXPENSE,
WalletEntry.KEY_LAST_TRANSACTION_TITLE,
WalletEntry.KEY_LOCALES,
WalletEntry.KEY_CURRENCY
)
val selection = "${WalletEntry.KEY_CURRENCY} = ?"
val selectionArgs = arrayOf("")
return applicationContext?.let { context ->
CursorLoader(context,
WalletEntry.CONTENT_URI,
projection,
selection,
selectionArgs,
null)
}!!
}
我要显示WalletEntry.KEY_CURRENCY
没有符号值的所有结果为空的地方。我尝试将selectionArgs指定为null,但均无效。因此,我应该如何编写selectionArgs
来显示给定行为空的所有结果?
为使情况更清楚,我将提供一个应用程序目标。我正在学习Kotlin,因此决定编写类似“银行”应用程序的东西,在其中可以添加不同的钱包并指定货币。如果您添加新货币,则会立即将其添加到数据库的WalletEntry.KEY_CURRENCY
列中。然后,我有一个包含所有“钱包”的列表,在其中添加新货币后,会出现一个空的额外钱包。为避免这种情况,我想过滤结果并仅显示在WalletEntry.CURRENCY
列中未传递值的结果。
答案 0 :(得分:1)
如果您要在该数据库列中寻找NULL
值,我想您可能正在寻找:
val selection = "${WalletEntry.KEY_CURRENCY} IS NULL"
val selectionArgs = null
如果selectionArgs
参数不能为空,请尝试将其设置为emptyArray<String>()