Печать списка <String> для logcat

Я вижу, что для log.d требуется

Log.d(String TAG, String). 

Как распечатать на андроид debug logcat строку List вместо строки?

Ответ 1

Использовать метод toString(), который доступен для большинства распространенных структур данных:

Log.d("list", list.toString());

Вышеуказанный результат даст вам ожидаемый результат, если вы объявите свой List/Collection, используя Общий тип, определенный в Java. Такие, как String, Integer, Long и т.д. Причина, все они внедрили метод toString().

Custome Generic Type:

Но если вы объявите List, используя свой собственный тип, вы не получите правильный вывод, просто позвонив list.toString(). Для получения ожидаемого результата вам необходимо реализовать метод toString() для вашего настраиваемого типа.

Например:

У вас есть класс модели с именем Dog, как показано ниже

public class Dog{
   String breed;
   int ageC
   String color; 
}

Вы объявили List, используя тип Dog

List<Dog> dogList = new ArrayList<Dog>();

Теперь, если вы хотите правильно напечатать этот список в LogCat, вам нужно реализовать метод toString() в классе Dog.

public class Dog{
   String breed;
   int age
   String color;

   String toString(){
       return "Breed : " + breed + "\nAge : " + age + "\nColor : " + color;
   } 
}

Теперь вы получите правильный результат, если вы вызываете list.toString().

Ответ 2

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);
                }