Я пытаюсь объединить две таблицы с одинаковыми полями, чтобы создать один курсор (через поставщика контента), который я использую для создания моего ListView.
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String groupBy = null;
switch (sUriMatcher.match(uri)) {
case LIST:
StringBuilder sb = new StringBuilder();
for (String s : projection)
sb.append(s).append(",");
String projectionStr = sb.toString();
projectionStr = projectionStr.substring(0,
projectionStr.length() - 1);
String[] subQueries = new String[] {
"SELECT " + projectionStr + " FROM " + Customer.TABLE_NAME,
"SELECT " + projectionStr + " FROM "
+ IndividualCustomer.TABLE_NAME };
String sql = qb.buildUnionQuery(subQueries, sortOrder, null);
SQLiteDatabase db = mDatabaseHelper.getReadableDatabase();
Cursor mCursor = db.rawQuery(sql, null);
mCursor.setNotificationUri(getContext().getContentResolver(), uri);
return mCursor;
Даже если две таблицы пусты, я получаю две нулевые строки, что создает две строки в моем списке просмотра. Как мне избавиться от этой проблемы?
Кроме того, когда я удаляю строку из ListView, курсор не обновляется, несмотря на setNotificationUri ()
Любые указатели, будут наиболее ценится