gpt4 book ai didi

java - 在 Android 中使用 SQLite 和 ContentProvider 设置 _ID 字段

转载 作者:行者123 更新时间:2023-11-30 04:44:44 25 4
gpt4 key购买 nike

我正在尝试在 Android 应用程序中设置一个 ContentProvider 来保存有关房屋的信息。我希望能够将 _ID 字段设置为与我的外部数据库中的 ID 字段相同(程序会将 ContentProvider 与该外部数据库同步)。

这样做的原因是我希望能够像这样引用 ID:

content://com.example.acme.propertyprovider/properties/23

其中 23 是外部数据库和内部数据库中的相同 ID。

以下只会导致错误“android.database.SQLException:无法将行插入到内容中://com.example.acme.propertyprovider/properties

ContentValues values = new ContentValues();

values.put(Properties._ID, 23);
values.put(Properties.COLUMN_NAME_ROAD, "123 Sample Property");
values.put(Properties.COLUMN_NAME_RENT, 320);

getContentResolver().insert(Properties.CONTENT_URI, values);

最佳答案

您最好在 Android 数据库中设置一个外键以保存来自外部数据库的 ID。这样您就不必担心事情会不同步。由于 _ID 字段是自动递增的,您将为自己制造一场噩梦。

添加诸如 extHouse_id(或其他)之类的内容。这是一种非常普遍的做法。

关于java - 在 Android 中使用 SQLite 和 ContentProvider 设置 _ID 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5266860/

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