Když zadáte jeden řetězec jako whereArgs , jeden řetězec skončí v příkazu SQL, jako byste napsali toto:
... WHERE _id IN ('1,2,42')
To by porovnalo každé _id hodnotu proti hodnotě '1,2,42' , což samozřejmě nefunguje.
Pokud použijete tři značky parametrů a zadáte tři řetězce do whereArgs pole, skončili byste se třemi řetězci takto:
... WHERE _id in ('1','2','42')
Toto funguje pouze v případě, že _id sloupec má celočíselnou afinitu, což platí pro sloupec deklarovaný jako INTEGER PRIMARY KEY, ale ne v obecném případě.
Databázové rozhraní Android API neumožňuje, aby parametry dotazu měly jakýkoli typ kromě řetězce. Při použití celých čísel byste je měli vložit přímo (jako v odpovědi ianhanniballake):
String whereClause = getIdColumn() + " IN (" + TextUtils.join(",", ids) + ")";