come posso recuperare un database Firebase a valore casuale

Ho un database Firebase con un albero simile a questo

tvthemetunes airwolf value "url to air wolftheme" eastenders value "url to eastenders" knight rider value "url to nightrider" 

e così via…

nella mia app gli utenti scaricano oggetti e mentre gli oggetti scaricano un tema televisivo verrà riprodotto dall’URL. posso farlo funzionare bene quando evento di valore per un singolo object. voglio che scelga un valore a caso dalla lista. come può ottenere questo?

La modifica può utilizzare il metodo di visualizzazione del riciclo poiché la mia app non ne contiene

questo è il mio codice per singolo object

  protected Dialog onCreateDialog(int id) { switch (id) { case progress_bar_type: //Here is where i play the theme getthemetune(); pDialog = new ProgressDialog(c); pDialog.setTitle(MY Title); pDialog.setMessage(MY Message); pDialog.setIcon(R.mipmap.ic_launcher); pDialog.setIndeterminate(false); pDialog.setMax(100); pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pDialog.setCancelable(false); pDialog.show(); return pDialog; default: return null; } } private void getthemetune(){ mthemetuneref = FirebaseDatabase.getInstance(); DatabaseReference ref = mthemetuneref.getReference().child(MYREF); ref.child("airwolf").addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { //Edit to add Alex's answer? long childrenCount = datasnapshot.getChildrenCount(); int count = (int) childrenCount; //Dont know how to use this int randomNumber = new Random().nextInt(count); plysound(); } @Override public void onCancelled(DatabaseError databaseError) { } }); } private void plysound(){ mp = new MediaPlayer(); String j = tvThemeTune.toString(); Log.i("Url",j); try { mp.setDataSource(j); } catch (IOException e) { e.printStackTrace(); } try { mp.prepare(); } catch (IOException e) { e.printStackTrace(); } mp.start(); Log.i("Sound playing", "Ok"); mp.setLooping(true); 

}

Per risolvere questo, si prega di utilizzare le seguenti righe di codice:

 long childrenCount = snapshot.getChildrenCount(); int count = (int) childrenCount; int randomNumber = new Random().nextInt(count); 

E poi usa un ciclo for per tirare quel valore usando il numero casuale:

 int i=0; String themeTune; //Your random themeTune will be stored here for (DataSnapshot snap : snapshot.getChildren()) { if(i = randomNumber) { themeTune = snap.getValue(String.class); break; } i++; } plysound();