使用ContentProvider插入数组

时间:2015-12-03 04:05:01

标签: android android-sqlite android-contentprovider

我有一个Web服务,在成功验证后返回用户的配置文件。该配置文件采用JSON格式,如下所示:

{
  "first_name" : "John",
  "last_name" : "Doe",
  "interests: : ["Science","Sports"]
}  

如何使用ContentProvider将其保留在数据库中?

ContentValues没有任何处理多值属性的规定。我目前的实现如下:

@Override
public Uri insert(Uri uri, ContentValues values){
    switch(matcher.match(uri)){
        case NEW_PROFILE:
        break;
        default:
        return null;
    }
    ProfileDatabaseHelper helper = new ProfileDatabaseHelper();
    // delete the existing profile first
    helper.deleteUserProfile();
    // then add a new profile
    long id = helper.addUserProfile( values );
    if( id > -1 ){
        Uri insertedId = ContentUris.withAppendedId(CONTENT_URI,id);
        getContext().getContentResolver().notifyChange(insertedId,null);
        return insertedId;
    }else{
        return null;
    }
}

1 个答案:

答案 0 :(得分:1)

创建table以使用列_idinterest存储兴趣 然后创建另一个表来存储带有兴趣的个人资料的映射_idprofile_idinterest_id

为每个表创建ContentUri并相应地插入。