titleList 显示不正确..?
The titleList is displayed incorrectly..?
在 logcat 我得到
[标题 1 [6 姓名 6, 7 姓名 7], 标题 2 [6 姓名 6, 7 姓名 7], 标题 3 [6 姓名 6, 7 姓名 7]]
我想要的是
[标题 1 [1 姓名 1, 2 姓名 2], 标题 2 [3 姓名 3, 4 姓名 4, 5 姓名 5], 标题 3 [6 姓名 6, 7 姓名 7]]
var list:MutableList<Data> = ArrayList();
val titlelist:MutableList<TitleList> = ArrayList()
list.add(Data("1","Name 1"));
list.add(Data("2","Name 2"));
titlelist.add(TitleList("Title 1",list))
list.clear()
list.add(Data("3","Name 3"));
list.add(Data("4","Name 4"));
list.add(Data("5","Name 5"));
titlelist.add(TitleList("Title 2",list))
list.clear()
list.add(Data("6","Name 6"));
list.add(Data("7","Name 7"));
titlelist.add(TitleList("Title 3",list))
Log.d("TITLE_LIST",titlelist.toString())
我的 Pojo 类 是
Data.java
private String id;
private String name;
public Data(String id, String name) {
this.id = id;
this.name = name;
}
TitleList.java
private String title;
private List<Data> dataList;
public TitleList(String title, List<Data> dataList) {
this.title = title;
this.dataList = dataList;
}
您需要更改将项目添加到标题列表的行。在 TitleList 的构造函数中,传递 ArrayList(list)
而不是 list
(例如 titlelist.add(TitleList("Title 2",ArrayList(list)))
)。对将项目添加到标题列表的所有 3 行执行此操作。这是因为如果您使用变量 list
,此列表将绑定到您创建的标题列表的实例,并且会随着您更改 list
的值而改变。因此实例将始终具有您赋予变量 list
的最新值。这就是为什么在所有 3 种情况下您总是得到 [6 Name 6, 7 Name 7]。
在 logcat 我得到
[标题 1 [6 姓名 6, 7 姓名 7], 标题 2 [6 姓名 6, 7 姓名 7], 标题 3 [6 姓名 6, 7 姓名 7]]
我想要的是
[标题 1 [1 姓名 1, 2 姓名 2], 标题 2 [3 姓名 3, 4 姓名 4, 5 姓名 5], 标题 3 [6 姓名 6, 7 姓名 7]]
var list:MutableList<Data> = ArrayList();
val titlelist:MutableList<TitleList> = ArrayList()
list.add(Data("1","Name 1"));
list.add(Data("2","Name 2"));
titlelist.add(TitleList("Title 1",list))
list.clear()
list.add(Data("3","Name 3"));
list.add(Data("4","Name 4"));
list.add(Data("5","Name 5"));
titlelist.add(TitleList("Title 2",list))
list.clear()
list.add(Data("6","Name 6"));
list.add(Data("7","Name 7"));
titlelist.add(TitleList("Title 3",list))
Log.d("TITLE_LIST",titlelist.toString())
我的 Pojo 类 是
Data.java
private String id;
private String name;
public Data(String id, String name) {
this.id = id;
this.name = name;
}
TitleList.java
private String title;
private List<Data> dataList;
public TitleList(String title, List<Data> dataList) {
this.title = title;
this.dataList = dataList;
}
您需要更改将项目添加到标题列表的行。在 TitleList 的构造函数中,传递 ArrayList(list)
而不是 list
(例如 titlelist.add(TitleList("Title 2",ArrayList(list)))
)。对将项目添加到标题列表的所有 3 行执行此操作。这是因为如果您使用变量 list
,此列表将绑定到您创建的标题列表的实例,并且会随着您更改 list
的值而改变。因此实例将始终具有您赋予变量 list
的最新值。这就是为什么在所有 3 种情况下您总是得到 [6 Name 6, 7 Name 7]。