Je peux voir que le log.d nécessite
Log.d(String TAG, String).
Comment imprimer sur le Android debug logcat une liste de chaînes au lieu d'une simple chaîne?
Utilisez la méthode toString () qui est disponible pour les structures de données les plus courantes:
Log.d("list", list.toString());
L'instruction ci-dessus vous donnera le résultat attendu si vous déclarez votre List
/Collection
en utilisant type générique défini en Java. Tels que String, Integer, Long etc. Cause, ils ont tous implémenté la méthode toString()
.
Type générique personnalisé:
Mais si vous déclarez le List
en utilisant votre propre type personnalisé, vous n'obtiendrez pas une sortie correcte en appelant simplement list.toString()
. Vous devez implémenter la méthode toString()
pour votre type personnalisé pour obtenir la sortie attendue.
Par exemple:
Vous avez une classe de modèle nommée Dog
comme ci-dessous
public class Dog{
String breed;
int ageC
String color;
}
Vous avez déclaré un List
en utilisant le type Dog
List<Dog> dogList = new ArrayList<Dog>();
Maintenant, si vous souhaitez imprimer correctement cette liste dans LogCat
, vous devez implémenter la méthode toString()
dans la classe Dog
.
public class Dog{
String breed;
int age
String color;
String toString(){
return "Breed : " + breed + "\nAge : " + age + "\nColor : " + color;
}
}
Maintenant, vous obtiendrez un résultat correct si vous appelez list.toString()
.
if (list != null && list.size() > 0)
{
for (int i = 0; i < list.size(); i++) {
mStrp = mStrp + list.get(i).getdataname() + "/";
mStrD = mStrD + list.get(i).getdata2name() + "/";
}
//if you want to delete last "/"
mStrp = mStrLatPick.substring(0,mStrLatPick.length() - 1);
value = mStrp + mStrD;
Log.d("value",value);
}