Visualizzazione stampabile
-
Array di Button
Buonasera, sono nuovo del forum. Ho comprato un telefonino android da poco e ho iniziato a fare una calcolatrice. Il problema non riguarda il funzionamento, ma una "chicca" di eleganza nel codice. Mi spiego. Ho vari Button nel layout xml, e ho creato un Vector di Button per poterli gestire. Il punto è che si è creata una lista abbastanza lunga di add(), che, a mio avviso, è bruttina, e mi chiedevo se ci fosse un modo per prendere tutti i Button dal layout e creare un array in modo da rendere più immediata l'aggiunta di un pulsante. Ho provato a cercare su google ma non ho trovato nulla di utile. Spero possiate aiutarmi. Grazie in anticipo. :):)
-
Diciamo che potresti evitarlo in questo modo.
Chiami l'id di ogni button: button1,button2,button3 ecc...
int idnumber = this.getResources().getIdentifier("button" + i, "button", this.getPackageName());
dove i sara la variabile di un ciclo che va da 1 fino al numero x di button.
Poi farai:
Button btn = (button)findviewbyid(idnumber);
e aggiungi btn al Vector.
Verrà una cosa di questo genere:
codice:
for(i=1;i<numerodibutton;i++){
int idnumber = this.getResources().getIdentifier("button" + i, "button", this.getPackageName());
Button btn = (button)findviewbyid(idnumber);
tuovector.add(btn);
}
Questo è il più immediato ma è un metodo un pò lento.
Se ti va di complicarti un pò la vita dai un'occhio a questo post: Daniel Lew's Coding Thoughts: Dynamically Retrieving Resources in Android
-
Grazie mille x la risposta!! Lunedì proverò entrambi i metodi e ti farò sapere. :)
-
Il metodo utilizzato in quell'articolo sembra funzionare e penso che adotterò quello. Mi chiedevo però se ci fosse un metodo che conta quanti Button ho nel layout, in modo da avere due valori diversi per il portrait e per il landscape. Grazie in anticipo!! :D:D