Объединить пункт повторного просмотра - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь сделать все предметы в той же категории одним и тем же местом, но это создает новые. Я перепробовал много вариантов. Я получаю одно и то же

Это то, что я получение

Я хочу, чтобы все элементы в действии, например здесь, были вместе не разделены

   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
    }
  }
}

Я действительно новичок в этом, я не знаю, что я делаю неправильно. Спасибо

1 Ответ

0 голосов
/ 26 апреля 2020

Я не уверен, почему вы продолжаете заново создавать список, список должен быть за пределами для l oop:

этой строки:

//must be outside the for loop to prevent recreating it
ArrayList<BookDetails> itemArrayList = new ArrayList<>();
...