不兼容的类型 - 必需:android.net.Uri,找到:int

时间:2015-04-05 15:00:17

标签: android

我无法编译以下代码:

public long create (Context mContext, ContentValues rights)
{
    Long id;
    Uri mNewOwner = mContext.getContentResolver().insert( 
        this.getMyUri(),
        rights);
    id = ContentUris.parseId(mNewOwner);
    this.setID(id);
    this.setMyUri(ContentUris.withAppendedId(CONTENT_URI, id));

    return id;
}

public void update(Context mContext)
{
    ContentValues updatedValues = new ContentValues();

    updatedValues.put(Game2user.FIELD_RIGHTS_POWER, this.getRightPower());
    updatedValues.put(Game2user.FIELD_RIGHTS_EVENT, this.getRightEvent());
    updatedValues.put(Game2user.FIELD_RIGHTS_RULE, this.getRightRule());
    updatedValues.put(Game2user.FIELD_RIGHTS_USER, this.getRightUser());
    updatedValues.put(Game2user.FIELD_RIGHTS_GAME, this.getRightGame());
    updatedValues.put(Game2user.FIELD_IS_PLAYER, this.getIsPlayer());
    Uri mUpdatedObject = mContext.getContentResolver().update(
            this.getMyUri(),
            updatedValues,null,null);
}

Uri mUpdatedObject给了我一个错误Incompatible types - Required: android.net.Uri, found: int.。我不明白为什么/它在哪里看到一个int因为getMyUri返回一个Uri ......

public Uri getMyUri() {
    return myUri;
}

1 个答案:

答案 0 :(得分:1)

这是因为最终调用的方法是更新(Uri,ContentValues,String,String []),它返回一个表示更新行数的int。您的方法在update方法中作为参数传递。