在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类(class)是
资料库
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
,则此列表绑定(bind)到您创建的标题列表的实例,并且如果更改list
的值,该列表也会更改。因此,实例将始终具有您为变量list
赋予的最新值。这就是为什么在所有3种情况下总是得到[6 Name 6,7 Name 7]的原因。