我是否需要每列添加剂?

时间:2017-01-23 18:36:55

标签: android android-contentprovider

如果我有一个包含列的表:

COMPANION_ID

COMPANION_NAME

COMPANION_TYPE

我需要做什么

uriMatcher.addURI(AUTHORITY,"COMPANION/#",COMPANION_ID);
uriMatcher.addURI(AUTHORITY,"COMPANION/*",COMPANION_NAME);
uriMatcher.addURI(AUTHORITY,"COMPANION/*",COMPANION_TYPE);

或我这样做:

uriMatcher.addURI(AUTHORITY,"COMPANION/COMPANION_ID/#",COMPANION_ID);
uriMatcher.addURI(AUTHORITY,"COMPANION/COMPANION_NAME/*",COMPANION_NAME);
uriMatcher.addURI(AUTHORITY,"COMPANION/COMPANION_TYPE/*",COMPANION_TYPE);

1 个答案:

答案 0 :(得分:0)

我觉得你对UriMatchers有点困惑。使用投影获取查询中的列,使用UriMatchers来区分内容提供商中的路径。

要通过id获得伴侣,我会使用你的第一个uri matcher

  • uriMatcher.addURI(AUTHORITY, “伴侣/#”,COMPANION_ID);

之后,我会使用投影

识别每列

//查询用户词典并返回结果 mCursor = getContentResolver()。query(     yourUri,// COMPANION表的内容URI,带有您的ID     mProjection,//每行返回的列     mSelectionClause //选择标准     mSelectionArgs,//选择标准     mSortOrder); //返回行的排序顺序

看看这里澄清:https://developer.android.com/guide/topics/providers/content-provider-basics.html