Når du giver en enkelt streng som whereArgs , en enkelt streng ender i SQL-kommandoen, som om du havde skrevet dette:
... WHERE _id IN ('1,2,42')
Dette ville sammenligne hver _id værdi mod værdien '1,2,42' , hvilket selvfølgelig ikke virker.
Hvis du bruger tre parametermarkører og giver tre strenge i whereArgs array, ville du ende med tre strenge, som denne:
... WHERE _id in ('1','2','42')
Dette virker kun, når _id kolonne har heltals affinitet, hvilket er sandt for en kolonne, der er erklæret som INTEGER PRIMARY KEY, men ikke i det generelle tilfælde.
Android-database-API'en tillader ikke forespørgselsparametre at have andre typer end streng. Når du bruger heltal, skal du bare indsætte dem direkte (som i ianhanniballakes svar):
String whereClause = getIdColumn() + " IN (" + TextUtils.join(",", ids) + ")";