Reputation: 717
I have a very strange problem below queries is returns a cursor but the count is 0 though the data is there in db i have checked it,
Cursor cursor = context.getContentResolver().query(VueConstants.CONTENT_URI,
new String[] {"aisleId"}, null, null, null);
Cursor cursor = context.getContentResolver().query(VueConstants.CONTENT_URI,
null, null, null, null);
Below is the query method of ContentProvider class i have overridden in my custome content provider with uri matcher
private static final UriMatcher URIMATCHER;
/** uri matchers for articles table and articles fts3 table query method. */
static {
URIMATCHER = new UriMatcher(UriMatcher.NO_MATCH);
URIMATCHER.addURI(VueConstants.AUTHORITY, VueConstants.AISLES,
AISLES_MATCH);
URIMATCHER.addURI(VueConstants.AUTHORITY, VueConstants.AISLES
+ "/#", AISLE_MATCH);
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
SQLiteDatabase aislesDB = dbHelper.getWritableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
Cursor cursor = null;
String id;
switch (URIMATCHER.match(uri)) {
case AISLES_MATCH:
qb.setTables(VueConstants.AISLES);
cursor = qb.query(aislesDB, projection, selection, selectionArgs,
null, null, sortOrder);
Log.e("provider", "Total Aisles marked to Content Provider cursor.getCount()" + cursor.getCount());
break;
case AISLE_MATCH:
qb.setTables(VueConstants.AISLES);
id = uri.getLastPathSegment();
cursor = qb.query(aislesDB, projection,
VueConstants.AISLE_ID+ "=" + id
+ (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')'
: ""), selectionArgs, null, null, null);
break;
case AISLE_IMAGES_MATCH:
qb.setTables(VueConstants.AISLE_IMAGES);
cursor = qb.query(aislesDB, projection, selection, selectionArgs,
null, null, sortOrder);
break;
case IMAGE_MATCH:
qb.setTables(VueConstants.AISLE_IMAGES);
id = uri.getLastPathSegment();
cursor = qb.query(aislesDB, projection,
VueConstants.IMAGE_ID+ "=" + id
+ (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')'
: ""), selectionArgs, null, null, null);
break;
case LOOKING_FOR_TABLE_MATCH:
qb.setTables(VueConstants.LOOKING_FOR_TABLE);
cursor = qb.query(aislesDB, projection, selection, selectionArgs,
null, null, sortOrder);
break;
case LOOKING_FOR_ROW_MATCH:
qb.setTables(VueConstants.LOOKING_FOR_TABLE);
id = uri.getLastPathSegment();
cursor = qb.query(aislesDB, projection,
VueConstants.ID+ "=" + id
+ (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')'
: ""), selectionArgs, null, null, null);
break;
case OCCATION_TABLE_MATCH:
qb.setTables(VueConstants.OCCASION_TABLE);
cursor = qb.query(aislesDB, projection, selection, selectionArgs,
null, null, sortOrder);
break;
case OCCATION_ROW_MATCH:
qb.setTables(VueConstants.OCCASION_TABLE);
id = uri.getLastPathSegment();
cursor = qb.query(aislesDB, projection,
VueConstants.ID+ "=" + id
+ (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')'
: ""), selectionArgs, null, null, null);
break;
case CATEGORY_TABLE_MATCH:
qb.setTables(VueConstants.CATEGORY_TABLE);
cursor = qb.query(aislesDB, projection, selection, selectionArgs,
null, null, sortOrder);
break;
case CATEGORY_ROW_MATCH:
qb.setTables(VueConstants.CATEGORY_TABLE);
id = uri.getLastPathSegment();
cursor = qb.query(aislesDB, projection,
VueConstants.ID+ "=" + id
+ (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')'
: ""), selectionArgs, null, null, null);
break;
case COMMENTS_TABLE_MATCH:
qb.setTables(VueConstants.COMMENTS_ON_IMAGES_TABLE);
cursor = qb.query(aislesDB, projection, selection, selectionArgs,
null, null, sortOrder);
break;
case COMMENTS_ROW_MATCH:
qb.setTables(VueConstants.COMMENTS_ON_IMAGES_TABLE);
id = uri.getLastPathSegment();
cursor = qb.query(aislesDB, projection,
VueConstants.ID+ "=" + id
+ (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')'
: ""), selectionArgs, null, null, null);
break;
}
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
}
Upvotes: 0
Views: 1267
Reputation: 411
And what is the value of VueConstants.CONTENT_URI? Have you tried an Uri like :
"content://"+VueConstants.AUTHORITY+"/"+ VueConstants.AISLES+"/1"
"content://"+VueConstants.AUTHORITY+"/"+ VueConstants.AISLES
Upvotes: 2