Autore Topic: Referenziare mediante stringa oggetto classe R  (Letto 401 volte)

Offline Qwertid

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
Referenziare mediante stringa oggetto classe R
« il: 07 Settembre 2011, 19:58:55 CEST »
0
Ciao a tutti!
Ho creato un layout per la mia applicazione composto da varie view ognuno con il proprio ID.

A runtime il programma sceglie quali di questi oggetti colorare: per questo avevo pensato ad una soluzione del genere

Codice (Java): [Seleziona]
        String temp = "R.id."+"R" + tempX + "C" + tempY;
        a = Integer.parseInt(temp);
        Button toColor = (Button) findViewById(temp);

Purtroppo il programma cade sul parseInt (come è giusto che sia...) . Avete idee su come poter risolvere questo problema?

Grazie!  :-)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Referenziare mediante stringa oggetto classe R
« Risposta #1 il: 07 Settembre 2011, 21:06:57 CEST »
+1
C'è uno Snippet, appena ho un attimo te lo cerco nella sezione Snippet.

EDIT: Accedere alle risorse usando la stringa del nome - Android Developers Italia
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Qwertid

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
Re:Referenziare mediante stringa oggetto classe R
« Risposta #2 il: 08 Settembre 2011, 08:54:20 CEST »
0
Forse mi sono entusiasmato un attimo troppo presto o, ancora più probabilmente, non riesco ad usare correttamente la funzione.

Nel caso di un bottone di un layout, cosa ci scrivo al posto di "drawable" e della funzione setImageResource (che compaiono nel tutorial)?

Grazie ancora  :-P

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Referenziare mediante stringa oggetto classe R
« Risposta #3 il: 08 Settembre 2011, 09:05:56 CEST »
0
Dici una cosa del genere?

Codice (Java): [Seleziona]
getIdentifier("mybutton","id",getPackageName());
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Qwertid

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
Re:Referenziare mediante stringa oggetto classe R
« Risposta #4 il: 08 Settembre 2011, 09:09:02 CEST »
0
Dici una cosa del genere?

Codice (Java): [Seleziona]
getIdentifier("mybutton","id",getPackageName());

Si esatto.. In "mybutton" devo inserire la stringa che mi sono costruito, quindi del tipo "R.id.ciaomamma"? O quello va in "id"?

Insomma c'è un parametro in più che non mi torna  :D

Mi sorge il dubbio di non aver ben chiarito che il bottone in oggetto è stato creato in un file xml di contenuto nella cartella Layout e a cui ho associato manualmente un ID, come si fa in genere
« Ultima modifica: 08 Settembre 2011, 09:17:12 CEST da Qwertid »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Referenziare mediante stringa oggetto classe R
« Risposta #5 il: 08 Settembre 2011, 09:23:06 CEST »
0
Si esatto.. In "mybutton" devo inserire la stringa che mi sono costruito, quindi del tipo "R.id.ciaomamma"? O quello va in "id"?

Insomma c'è un parametro in più che non mi torna  :D

"mybutton" è l'ID che hai scelto tu, mentre "id" è la tipologia dell'identifier (riferimento: help su android.com Resources | Android Developers)
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Qwertid

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
Re:Referenziare mediante stringa oggetto classe R
« Risposta #6 il: 08 Settembre 2011, 10:49:36 CEST »
0
Adesso ho risolto davvero :) Non capivo che "id" fosse l'identificativo della classe contenuta in R di cui la risorsa fa parte.

Grazie mille dell'aiuto!  :-)