2 messaggi dal 03 aprile 2014
public class MainActivity extends Activity {

int num, x ,z , vnum;


public Integer[] img;
public Integer[] nimg;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



img[0]=R.drawable.prova1;
img[1]=R.drawable.prova2;
img[2]=R.drawable.prova3;
img[3]=R.drawable.prova4;


Integer [] nimg= new Integer[4];





while (z!=4){
Random r=new Random();
num =r.nextInt(24);
for(x=0; x<24; x++){
if (nimg[x]==img[num]){
break;
} else {
x = num ;
nimg[x]= img[num];
z++;
}

}
}


GridView griglia=(GridView)findViewById(R.id.griglia);


Io ho un array img che posso visualizzare in una GridView. Pero' voglio visualizzarle in maniera sempre diversa
ed ecco che mi rica un altro array ' nmig" con la funzione Random. Come faccio adesso a riempire la GridView col nuovo
array nimg ? Mi sai dare un'indicazione ? Su internet non ho trovato niente e tanto meno sui libri. Grazie ebuona giornata.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Giuseppe,
fortunatamente non devi implementare tu un algoritmo perché c'è un modo più semplice di riorganizzare gli elementi di un array secondo un ordine casuale.

Fai semplicemente così, usando l'OrderBy.
var r = new Random();
var nimg = img.OrderBy(item => r.Next());

OrderBy è un extension method LINQ, quindi dovrai aggiungere uno using System.Linq in cima al tuo file .cs, se non ci fosse già.

ciao,
Moreno
Modificato da BrightSoul il 11 aprile 2014 08.50 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.