代码:

studentName=Singleton.getInstance().getNameId();

 Log.v("studentname",""+studentName);

 Iterator it=studentName.entrySet().iterator();

 while (it.hasNext()){

 Map.Entry entry = (Map.Entry) it.next();

 String name= String.valueOf(entry.getValue());

 students.setName(name);

 list.add(students);

 Log.v("students",""+list);

  }


并显示日志

02-02 11:35:01.140 17483-17483/com.example.tiger.servertest V/students: [Student One]
02-02 11:35:01.140 17483-17483/com.example.tiger.servertest V/students: [Student two, Student two]

最佳答案

每次设置新名称时,都应创建学生对象,然后将学生参考添加到列表中。在您的情况下,学生拥有参考,并且当您将新名称设置为students对象时,它将覆盖列表中先前添加的对象。

看下面的代码,我在您的代码中添加了一行。试试这个。

studentName=Singleton.getInstance().getNameId();

Log.v("studentname",""+studentName);

Iterator it=studentName.entrySet().iterator();

while (it.hasNext()) {

    Map.Entry entry = (Map.Entry) it.next();
    String name= String.valueOf(entry.getValue());
    students = new Students(); // Add this line
    students.setName(name);

    list.add(students);

    Log.v("students",""+list);
}

关于java - 我正在将数据从单例类中获取到我的 Activity list 之一,但 list 中的值是最后一个值,任何人都可以为我整理一下,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41995463/

10-09 23:27