gpt4 book ai didi

android - 如何使用内容提供程序删除前 "n"行

转载 作者:行者123 更新时间:2023-11-29 14:52:46 24 4
gpt4 key购买 nike

我想使用内容提供程序删除前“n”行。

这是我的代码:

    private void deleteOldItems(int number) {
String where = HistoryTable.COLUMN_ID + "<=?";
getContentResolver()
.delete(Uri.parse("content://com.ipiit.client.contentprovider.HistoryContentProvider/histories"),
where, new String[] {String.valueOf(number)});
}

我工作但只有一次。如何始终删除第一行?

最佳答案

如果这是你“自己的”ContentProvider,即你确定表名和类似的东西,你总是可以像这样做一个相当丑陋的子选择:

private void deleteOldItems(int number) {
// You should probably sort the subselect on something
// suitable indicating its age. The COLUMN_ID should do.
String where = HistoryTable.COLUMN_ID + " IN (SELECT " + HistoryTable.COLUMN_ID + " FROM " +
HistoryTable.TABLE_NAME + " ORDER BY " + HistoryTable.COLUMN_ID + " LIMIT ?)";
getContentResolver()
.delete(Uri.parse("content://com.ipiit.client.contentprovider.HistoryContentProvider/histories"),
where, new String[] {String.valueOf(number)});
}

另一方面,如果它是您自己的 ContentProvider .. 只需添加对在将 URI 传递给 #delete(..) 时向其添加“limit”参数的支持,而不是求助于丑陋的像这样的黑客攻击。

关于android - 如何使用内容提供程序删除前 "n"行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13397781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com