Je suis un didacticiel sur les fournisseurs de contenu et, dans un code spécifique, ils ont inséré des données en utilisant une méthode bulkInsert
. Ils ont également utilisé une variable Vector (cVVector
) pour stocker tous les ContentValues
.Erreur lors de la conversion de Object [] en ContentValues []
qui a été mentionné:
if (cVVector.size() > 0) {
ContentValues[] cvArray = new ContentValues[cVVector.size()];
cVVector.toArray(cvArray);
mContext.getContentResolver().bulkInsert(WeatherEntry.CONTENT_URI, cvArray);
}
Ensuite, j'ai essayé de réduire le code par coulée cVVector.toArray()
-ContentValues[]
, mais je me fais une erreur.
code édité par moi:
if (cVVector.size() > 0) {
mContext.getContentResolver().bulkInsert(WeatherEntry.CONTENT_URI, (ContentValues[]) cVVector.toArray());
}
erreur que je reçois:
FATAL EXCEPTION: AsyncTask #1
Process: com.example.thiago.sunshine, PID: 9848
java.lang.RuntimeException: An error occured while executing doInBackground()
...
Caused by: java.lang.ClassCastException: java.lang.Object[] cannot be cast to android.content.ContentValues[]
Enfin, ma question est: Pourquoi je ne peux pas faire une coulée entre un Object[]
et un ContentValues[]
? Observations: L'anglais n'est pas ma langue maternelle, veuillez excuser toutes les erreurs.
Ça m'a beaucoup aidé. Je me suis perdu, parce que je pensais que la distribution lancerait le tableau automatiquement, en jetant chaque objet dans le nouveau tableau. Mais, comme vous l'avez dit, 'Object []' et ContentValues [] 'sont des types de tableau différents, donc le casting que j'ai fait ne fonctionnera jamais correctement. Merci encore! –