Comment puis-je obtenir le _count à mon fournisseur de contenu?
Que dois-je faire pour obtenir mon fournisseur de contenu pour le retour de la _count colonne avec le nombre de dossiers? La documentation dit que c'est automatique, mais peut-être que c'est seulement en prenant sur certaines intégré de fournisseur de contenu. L'exécution d'une requête à la base de données ne semble pas pour le retour.
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez
ContentProvider.query()
unCursor
est retourné. AppelCursor.getCount()
pour obtenir le nombre d'enregistrements dans le retour du curseur.Si vous utilisez contentProvider, alors vous devez le faire comme
count(*) AS count
.Si vous utilisez
cursor.getCount()
, qui ne serait pas aussi efficace que l'approche ci-dessus. Aveccursor.getCount()
vous êtes à la récupération de toutes les lignes, juste pour obtenir compte. L'ensemble du code devrait ressembler à ce qui suit -La raison pour laquelle cela fonctionne est que android a besoin d'un nom de colonne à définir.
ContactsContract.Data.CONTENT_URI
...count(*)
n'est plus pris en charge dans.Android Q
J'ai eu un problème similaire et a constaté que cela a fonctionné pour moi. Dans l'exemple ci-dessous j'ai voulu obtenir le nombre d'images de la MediaStore fournisseur.
Avec
cursor.getCount()
vous ne pouvez pas vous assurer qu'elle retourne le nombre d'éléments retournés. Il y a beaucoup mieux manières:1 - Si vous utilisez les Fournisseurs de Contenu, vous pouvez faire une requête et de l'utilisation de la
Column (_COUNT)
inclus dans BaseColumns pour votre projection2 - Pour faire un rawQuery à l'aide de
SELECT COUNT(*)
comme @il le dit dans sa réponse.