Comment voir un tableau dans logcat pour Android

Je voudrais enregistrer des données brutes comme des tableaux dans mon logcat, alors je sais quelle est la sortie. Disons que j'ai un tableau … comme ça:

File[] mp3List = ... Log.v("test", mp3List); 

Pourquoi ne puis-je pas enregistrer le tableau pour la console? Comment puis-je le faire?

  • Comment faire des appels manqués?
  • ViewPager et fragments - quel est le bon moyen de stocker l'état du fragment?
  • Android - Artefacts utilisant l'animation
  • Voir animé derrière une autre disposition
  • Comment obtenir des informations sur google play store dans mon application Android?
  • Xamarin vs iOS et Android originaux
  • L'application Android vient d'être téléchargée: combien de temps avant que l'application ne s'affiche dans la recherche sur Android Market?
  • Comment envoyer des données sur un lien Bluetooth Low Energy (BLE)?
  • Appelez la bibliothèque C ++ depuis Java dans Android
  • Convertir le bitmap Android sur OpenCV Mat et en arrière
  • Renvoi de changement de page pour PagerAdapter
  • Que se passe-t-il lorsque vous cliquez sur l'icône de lancement d'une application?
  • 5 Solutions collect form web for “Comment voir un tableau dans logcat pour Android”

    La raison pour laquelle cela ne fonctionne pas est simplement parce que le 2ème argument de Log.v est un String not a File[] . Java applique strictement les types d'arguments.

    Mise à jour :

    Vous pouvez facilement transformer les informations contenues dans un objet File en un objet String . Tous les objets java implémentent un toString() , qui, si je me souviens, renvoie correctement une combinaison du ClassName et l' address de l'objet est située. Cependant, cela ne contient généralement pas d'informations utiles. Vous devez donc définir la conversion vous-même.

    Maintenant, convertir de File[] à String est plus compliqué parce que vous appelez une méthode sur un tableau, il fonctionne sur l'objet array plutôt que sur les membres d'un tableau (qui contient les informations dont je pense que vous vous inquiétez). Alors appeler mp3List.toString() renverra une chaîne unique qui décrit l'objet array et non les informations contenues dans le tableau.

    Donc, vous voudrez probablement écrire une méthode comme celle-ci:

     String fileArrayToString(File[] f){ String output = ""; String delimiter = "\n" // Can be new line \n tab \t etc... for (int i=0; i<f.length; i++) { output = output + f[i].getPath() + delimiter; } return output; } 

    Et puis appelez, faites votre appel de journal comme suit:

     Log.v("MyTag", fileArraytoString(mp3List); 

    Cependant, cela pourrait être difficile à lire.

    Personnellement, je le ferais comme ceci:

     for (int i=0; i<mp3List.legnth; i++) Log.v("MyTag", Integer.toString(i) + ":" + mp3List[i].getPath()); 

    C'est plus simple, produit des messages journaux plus propres et plus facile à comprendre ce qui se passe en tant que programmeur.

    Vous ne pouvez pas enregistrer le tableau car il s'agit simplement d'un objet. LogCat n'a aucune idée de la façon de traiter ou de l'afficher de la manière souhaitée.

    Si chaque objet File a une méthode toString () qui affiche les informations que vous souhaitez utiliser:

    Log.v(Arrays.toString(mp3List));

    Sinon, vous devrez concaténer votre propre String pour vous connecter:

     StringBuilder sb = new StringBuilder(); for(File f : mp3List) { sb.append(f.getName()); } Log.v(sb.toString()); 

    Si vous avez une matrice de chaînes, vous pouvez simplement ajouter à String () et s'afficher.

    Pour les objets personnalisés, vous devez remplacer la méthode toString () et imprimer ce que vous voulez voir pour cet objet. Si vous avez alors un tableau, le tableau sera imprimé avec la sortie de la méthode toString.

    Peut-être que j'ai mal compris, mais je pense simplement:

     string sLog = ""; for(mp3List..) { sLog += mp3List[i].getName(); } Log.v(sLog); 

    N'est-ce pas? Parce que, je suppose, lorsque vous essayez d'imprimer un tableau comme ça, vous obtiendrez une entrée de journal en disant que mp3List est un System.Blah.Blah.File[] ..

    J'espère que cela aide..

    J'aime mieux une ligne:

    for(File file:list) Log.d(TAG, "list: " + file.getPath());

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.