This is my randomly retrieving data codes:
            mDataSelect.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    List<String> lst = new ArrayList<String>();
                    for (DataSnapshot ds : dataSnapshot.getChildren()) {
                        Collections.shuffle(lst);
                        lst.add(String.valueOf(ds.getKey()));
                        randomGenerator = new Random();
                        int index = randomGenerator.nextInt(lst.size());
                        String item = lst.get(index);
                        idofcaps.setText(item);
                        final DatabaseReference capsSelect = mDataSelect.child(item);
                        capsSelect.addValueEventListener(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dss) {
                                String post_Image = (String) dss.child("Image").getValue();
                                Picasso.with(StartCapsActivity.this).load(post_Image).into(caps);
                                String post_name = (String) dss.child("Translation").getValue();
                                translation.setText(post_name);
                            }
                            @Override
                            public void onCancelled(DatabaseError databaseError) {
                            }
                        });
                    }}
                @Override
                public void onCancelled(DatabaseError databaseError) {
                }
            });
        }
    });
I have a next button in my screen which has the same code for retrieve another image from database. However, I don't want to retrieve same image again. How can I prevent this redundancy?
 
     
     
    