Я полагаю, что вы могли бы использовать: -
ContentValues values = new ContentValues();
values.put(DataEntry.COLUMN_DATA, "1");
String selection = DataEntry._ID + "=?";
String[] selectionArgs = selectedData.toArray(new String[selectedData.size()]);
for each(String s: selectionArgs) {
int rowsAffected = getContentResolver().update(DataEntry.CONTENT_URI, values, selection, new String[]{s});
}
В качестве альтернативы вы можете использовать WHERE IN (list of id's)
, что может быть таким: -
ContentValues values = new ContentValues();
values.put(DataEntry.COLUMN_DATA, "1");
String selection " IN (?)";
String[] selectionArgs = selectedData.toArray(new String[selectedData.size()]);
StringBuilder sb = new StringBuilder();
for (int i=0; i < selectionArgs.length(); i++) {
sb.append(selectionArgs[i]);
if (i < (selectionArgs.length - 1)) {
sb.append(",");
}
}
int rowsAffected = getContentResolver().update(DataEntry.CONTENT_URI, values, selection, new String[]{sb.toString()});
Конечно, вы можете зацикливатьсяпутем применения х заполнителей.Это будет выглядеть следующим образом: -
ContentValues values = new ContentValues();
values.put(DataEntry.COLUMN_DATA, "1");
String[] selectionArgs = selectedData.toArray(new String[selectedData.size()]);
StringBuilder sb = new StringBuilder("IN (");
for (int i=0; i < selectionArgs.length(); i++) {
if (i < (selectionArgs.length() - 1) {
sb.append("?,");
} else {
sb.append("?)");
}
}
int rowsAffected = getContentResolver().update(DataEntry.CONTENT_URI, values, sb.toString, selectionArgs);
- Обратите внимание, что это принципиальный код, который не был проверен, поэтому он может содержать некоторые ошибки.