首页 > 解决方案 > 过滤数据库并显示满足 2 个条件的结果

问题描述

我正在尝试过滤我的 sqlite 数据库以仅显示满足多个条件的结果。

override fun onCreateLoader(p0: Int, p1: Bundle?): Loader<Cursor> {
    val projection = arrayOf(
            WalletEntry._ID,
            WalletEntry.KEY_TITLE,
            WalletEntry.KEY_LAST_DATE,
            WalletEntry.KEY_TRANSACTION_PLACE,
            WalletEntry.KEY_LAST_EXPENSE_VALUE,
            WalletEntry.KEY_LAST_TRANSACTION_TITLE,
            WalletEntry.KEY_VALUE_AFTER,
            WalletEntry.KEY_LOCALES,
            WalletEntry.KEY_CURRENCY
    )

    val data = "string" // specified result

    val selection = "${WalletEntry.KEY_TITLE} = ?" // AND WalletEntry.KEY_TRANSACTION_PLACE IS NOT NULL
    val selectionArgs = arrayOf(data)

    return applicationContext?.let { context ->
        CursorLoader(context,
                WalletEntry.CONTENT_URI,
                projection,
                selection,
                selectionArgs,
                null)
    }!!
}

我的意思是,在提供的初始化选择的代码中,我想选择标题等于变量data且列KEY_TRANSACTION_PLACE不为空的行。

那么,我应该如何更正我的 selection/selectionArgs 以过滤这些结果?

标签: androidsqlitekotlinandroid-sqlite

解决方案


你几乎拥有它:

val selection = "${WalletEntry.KEY_TITLE} = ? AND ${WalletEntry.KEY_TRANSACTION_PLACE} IS NOT NULL"

推荐阅读