怎么做"选择"和" selectionArgs"子句适用于ContentProvider

时间:2018-05-17 16:36:59

标签: java android android-contentprovider matrixcursor

我有一个带有实现的自定义类:

private static class Item {
    String userID;
    String userEmail;

    Item(String userID, String userEmail) {
        this.userID = userID;
        this.userEmail = userEmail;
    }
}

以下是我如何更新ContentProvider中的值:

@Override
public int update(@NonNull Uri uri, ContentValues values, String selection, String[] selectionArgs) {
    int itemPosition = 0;

    // Adding dummy data incase Items List is empty.
    if (items.isEmpty()) {
        add(values);
    } else {
        items.set(itemPosition, new Item(values.getAsString(K.USER_ID_COLUMN_NAME), values.getAsString(K.USER_EMAIL_COLUMN_NAME)));
    }
    return notifyChange(uri, itemPosition);
}

以下是我如何将值传递给方法:

ContentValues values = new ContentValues();
values.put(K.USER_ID_COLUMN_NAME, "1234");
values.put(K.USER_EMAIL_COLUMN_NAME, "test@m.com);

getContext().getContentResolver().update(K.CONTENT_URI, values, null, null);

我的问题是,如何重构更新方法,以便我可以使用selectionselectionArgs仅更新其中一列,并保留其他列的原样?我不想用SQLite使事情复杂化,但我宁愿选择MatrixCursor。

0 个答案:

没有答案