我的问题是如何打印logcat中arraylist内容的值?每个数组有两个字符串。。我必须先把它改成数组吗?
以下是我的学校班级:
public class SCHOOL {
private String schoolid;
private String schoolname;
private List<STUDENT> students = new ArrayList<>();
// getters and setters for schoolid, schoolname
public String getSchoolid() {
return schoolid;
}
public void setSchoolid(String schoolid) {
this.schoolid = schoolid;
}
public String getSchoolname() {
return schoolname;
}
public void setSchoolname(String schoolname) {
this.schoolname = schoolname;
}
public void setStudents(List<STUDENT> students) {
this.students = students;
}
public List<STUDENT> getStudents() {return this.students;}
public void addStudent(String names, String age) {
STUDENT student = new STUDENT();
student.setNames(names);
student.setAge(age);
students.add(student);
}
下面是我的学生班:公开课学生
private String names;
private String age;
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
以下是我的主要活动:
...
SCHOOL school = new SCHOOL();
school.addStudent("kent", "43");
school.addStudent("Winnie", "42");
school.addStudent("Dennis", "41");
List<STUDENT> studentsList = school.getStudents();
Log.d(tag, String.valueOf(studentsList));
...
结果如下:
Tag Activity: [com.example.spidey.jsontosql.STUDENT@5286b6d8,
com.example.spidey.jsontosql.STUDENT@5286b768,
com.example.spidey.jsontosql.STUDENT@5286b7b0]
覆盖类STUDENT
中的方法toString()
。例如:
public class STUDENT {
String names;
String age;
@Override
public String toString() {
return "STUDENT{" +
"names='" + names + ''' +
", age='" + age + ''' +
'}';
}
}
您可以为自定义输出编写一个输出方法,如:
public String outputStudents(List<STUDENT> studentsList) {
StringBuilder sb = new StringBuilder();
foreach (STUDENT student: studentLIst) {
sb.append(student.names);
sb.append(",");
sb.append(student.age);
sb.append(";");
}
return sb;
}
并使用以下代码调用此函数:
List<STUDENT> studentsList = school.getStudents();
Log.d(tag, outputStudents(studentsList));