Я вижу, что для log.d требуется
Log.d(String TAG, String).
Как распечатать на андроид debug logcat строку List вместо строки?
Я вижу, что для log.d требуется
Log.d(String TAG, String).
Как распечатать на андроид debug logcat строку List вместо строки?
Использовать метод 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()
.
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);
}