使用SQLite&设置_ID字段Android中的ContentProvider

时间:2011-03-10 22:50:17

标签: java android eclipse sqlite

我正在尝试在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);

1 个答案:

答案 0 :(得分:1)

最好在Android数据库中设置外键以保存外部数据库中的id。然后你不必担心事情不同步。由于_ID字段是自动递增的,因此您将为自己制造一场噩梦。

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