9
votes

Comment voir un tableau dans logcat pour Android

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

Pourquoi ne puis-je pas simplement enregistrer la matrice à la console? Comment puis-je le faire?


0 commentaires

5 Réponses :


0
votes

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

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

Log.v(sLog);


1 commentaires

La concaténation de la chaîne doit être effectuée à l'aide d'un StringBuilder. Utilisation + = crée un nouvel objet de chaîne pour chaque itération, car les chaînes sont immuables.



1
votes

Si vous avez un tableau à chaîne, vous pouvez simplement ajouter de la totring () et il sera affiché.

Pour les objets personnalisés, vous devriez remplacer la méthode Tostring () et imprimer ce que vous souhaitez voir pour cet objet. Si vous avez ensuite une matrice, le tableau sera imprimé avec la sortie de la méthode de tostring.


2 commentaires

Si j'utilise Tostring, il va enregistrer quelque chose comme: "ljava.io.file; @ 405meac0" qui ne m'aidera pas vraiment du tout.


C'est pourquoi vous devriez remplacer la méthode de totring dans votre classe dont vous souhaitez imprimer les informations.



14
votes

Vous ne pouvez pas enregistrer le tableau car c'est juste un objet. LOGCAT n'a aucune idée de la façon de traiter ou d'afficher l'affichage d'une manière que vous souhaitez.

Si chaque objet de fichier a une méthode Tostring () qui affiche les informations que vous souhaitez utiliser: P>

log.v (arides.tostring (mp3list)); code> p>

sinon vous devrez concaténer votre propre chaîne pour vous connecter: P>

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

Log.v(sb.toString());


0 commentaires

10
votes

La raison pour laquelle cela ne fonctionne pas est simplement parce que le 2e argument de log.v est une chaîne (code> pas un fichier non [] . Java applique strictement les types d'arguments.

Mise à jour :

Vous pouvez facilement transformer les informations contenues un fichier objet dans une chaîne objet . Tous les objets Java implémentent un TOSTRING () , que si je me souviens bien de retourner correctement une combinaison du nom classname et l'adresse de l'objet est située. Cependant, cela ne contient généralement pas d'informations utiles. Donc, vous devez définir la conversion vous-même.

maintenant pour convertir du fichier [] à String est plus compliqué parce que vous appelez une méthode sur un Array Il fonctionne sur l'objet Array plutôt que sur les membres d'un tableau (qui contient les informations que je suppose que vous vous souciez de). Alors appeler mp3list.tostring () retournera une seule chaîne qui décrit l'objet tableau et non les informations contenues dans la matrice.

Vous voudrez probablement écrire une méthode comme ceci: xxx

puis appelle votre appel de journal comme suit: xxx

Cependant, cela pourrait être difficile à lire .

Je ferais personnellement le faire comme ceci: xxx

Son plus simple, produit des messages de journal plus propres et est plus facile à comprendre ce qui se passe comme programmeur .


0 commentaires

0
votes

J'aime mieux une doublure:

pour (fichier de fichier: liste) log.d (tag, "liste:" + fichier.getpath ());


0 commentaires