
Oggi vedremo come utilizzare la classe Random di Java per le nostre applicazioni Android.
Può capitare che nello sviluppo di un applicazione, soprattutto se questa è un gioco, si abbia bisogno di un processo Random, cioè non determinabile a priori.
Poniamo l’esempio di voler realizzare un semplice applicazione che simuli il lancio di un dado per Android.
Creiamo un nuovo progetto di nome “dado”.
Inseriamo in drawable le immagini delle 6 facce del dado, reperibili qui.
La nostra interfaccia sarà estremamente semplice, visualizzerà solo la faccia del dado corrispondente al nostro “lancio”.
Quindi usando l’editor grafico spostiamo una qualunque delle 6 immagini (sarà quella di default) al centro del nostro RelativeLayout come in figura:
Cambiamo l’id dell’ImageView in “dado” per semplicità. Andiamo alla parte Java, apriamo MainActivity.java e scriviamo:
package com.example.dado; import java.util.Random; import android.app.Activity; import android.os.Bundle; import android.os.Vibrator; import android.view.View; import android.widget.ImageView; public class MainActivity extends Activity { Random r=new Random(); ImageView dado; Vibrator vib; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vib= (Vibrator) getSystemService(VIBRATOR_SERVICE); dado=(ImageView)findViewById(R.id.dado); dado.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ int lancio=r.nextInt(6);//ritorna un numero casuale compreso fra 0 e 5 mostraLancio(lancio+1);//si aggiunge uno per avere il lancio fra 1 e 6 vib.vibrate(50); } }); } private void mostraLancio(int lancio){ switch(lancio){ case 1: dado.setImageResource(R.drawable.uno); break; case 2: dado.setImageResource(R.drawable.due); break; case 3: dado.setImageResource(R.drawable.tre); break; case 4: dado.setImageResource(R.drawable.quattro); break; case 5: dado.setImageResource(R.drawable.cinque); break; case 6: dado.setImageResource(R.drawable.sei); break; } } }
Come potete notare oltre agli import android abbiamo anche un import java, quello relativo alla classe Random: questo mette in risalto la stretta connessione che hanno questi 2 “linguaggi” e la possibilità quindi di utilizzare elementi java per lo sviluppo di app.
Attenzione al metodo nextInt(int n) della classe Random che restituisce un numero compreso fra 0 e n-1 (inclusi).
Il metodo mostraLancio è stato appositamente scritto per questa lezione e utilizza il costrutto switch-case del java per cambiare l’immagine mostrata.
Abbiamo inoltre aggiunto una vibrazione come feedback utente.
Puoi guardare tutte le lezioni passate consultando l’indice del corso di programmazione android