2012-05-18 16 views
5

Sto provando a confrontare un array di numeri interi con i tag di immagini mostrate in modo univoco.Confronto del tag di una vista con un numero intero

utilizzando questa linea:

if(grid[i][j] == buttons[k].getTag()){ 

so im sui binari giusti, ma non riesco a capire se ho bisogno di lanciare o utilizzare un metodo. So che è una domanda semplice, ma qualsiasi aiuto sarebbe molto apprezzato, grazie.

+0

Come hai impostato il tag? –

+1

Tramite il file xml – Benny292

risposta

3

Penso che il tuo Tag sia piuttosto una stringa che un intero.

Se questo è il caso convertire il numero intero in stringa() e verificare se è uguale a().

10

Devi convertire i pulsanti [k] .getTag() in numero intero.

Fate questo:

if(grid[i][j] == Integer.parseInt(buttons[k].getTag().toString())){ 
+1

Molto semplice soluzione al mio problema, grazie! – Darrell

18

Tag è un oggetto, in modo da mettere un Integer:

/* 
* UseValueOf 
* ---------- 
* Priority: 4/10 
* Severity: Warning 
* Category: Performance 
* 
* You should not call the constructor for wrapper classes directly, such as`new 
* Integer(42)`. Instead, call the valueOf factory method, such as 
* Integer.valueOf(42). This will typically use less memory because common 
* integers such as 0 and 1 will share a single instance. 
*/ 
//MyView.setTag(new Integer(42)); 
MyView.setTag(Integer.valueOf(42)); 

quindi recuperare il valore in questo modo:

int tagValue = (Integer)MyView.getTag(); 
+0

Penso che non sia necessario utilizzare la parte 'Integer.valueOf (numero)'. Non è solo "setTag (42)" funzionare per questo? –

+0

Questo è fuorviante, non puoi lanciare una 'vista' su un' numero intero – Darrell

+0

@Darrell Il tag non è una vista, è un oggetto. – tdevaux

0

Si passa in un numero intero e inserire una variabile di indice. Ecco lo snippet di codice

int Index = Integer.parseInt(v.getTag().toString()); 
System.out.println(Index);