android - 合并回收站查看项目
问题描述
我正在尝试使同一类别下的所有项目都在同一个地方,但它会创建新的我尝试了很多选项我得到了同样的东西
我希望所有在行动的项目,例如这里是在一起而不是分开
if (y != null) {
//y is the category
for (int i = 0; i <keyList.size(); i++) {
//keyList is a set of firebase key under y
ArrayList<BookDetails> itemArrayList = new ArrayList<>();
reference.child(keyList.get(i)).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
BookDetails bookDetails = dataSnapshot.getValue(BookDetails.class);
itemArrayList.add(bookDetails);
adapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {}
});
sectionModelArrayList.add(new SectionBookModel(y, itemArrayList));
}
}
这是结构
{
"Action" : {
"-M5fYnj16773AVNYaMfE" :
{
"-M5fYqLScVzjMqw6xKsc" : true
},
"-M5jnhMoaXvnKt_Ide1y" :
{
"-M5jnitmW6pzFpZ6SKno" : true
}
},
"Adventure" : {
"-M5fYzWj5wX-TJdII0Ad" :
{
"-M5fZ-viqt0Dx4P1qeZR" : true
}
},
"Biographies" : {
"-M5n4DuadS8S_ENpwByp" :
{
"-M5n4GM89tADD980N1y8" : true
}
}
}
我真的很新,我不知道我做错了什么。谢谢
解决方案
我不确定你为什么要继续创建列表,列表必须在 for 循环之外:
这一行:
//must be outside the for loop to prevent recreating it
ArrayList<BookDetails> itemArrayList = new ArrayList<>();