Rigenerare classe R progetto Android

Mi è stata posta questa domanda:

Sul mio progetto, dopo aver eseguito un “clean” (uso eclipse), la classe R è stata cancellata.
Come faccio a rigenerarla?

Bene..vi comunico che non c’è nulla di cui preoccuparvi anche se vedete punti esclamativi rossi sul progetto oppure icone rosse con la “X” su ogni attività creata..
Giustamente questi errori vengono generati perché manca la classe R.
Vediamo prima di tutto cosa è la classe R in modo da capire il motivo per il quale eclipse (o il nostro ambiente di sviluppo) riconosce questi errori.

Un applicazione Android è costituita da diversi tipi di componenti che comprendono : codice sorgente Java, documenti XML, icone ed immagini, basi di dati e file binari di altro tipo. Tutti questi componenti vanno in un qualche modo assemblati fra di loro ed in base alla tipologia va inserito in un particolare punto del progetto.

Abbiamo delle risorse XML che definiscono alcune parti dell’applicazione come la GUI oppure dei parametri e valori, ma allo stesso tempo abbiamo il codice java all’interno di un Activity che deve utilizzare queste risorse per l’applicazione.
Come avviene tutto questo?
Il ponte fra questi due tipi i componenti viene gestito dalla “classe R” (da Resurces (All resource IDs are defined in your project’s R class, which the aapt tool automatically generates)) contenuta nella cartella gen/ e che viene generata dal plugin ADT in maniera automatica ogni qualvolta aggiungiamo un elemento alla struttura di un documento XML già esistente oppure ne creiamo uno nuovo.

Per utilizzare le risorse ‘mappate’ in questa classe si utilizzano alcuni metodi implementati nella classe Activity,come per esempio “setContentView(R.layout.main) attraverso cui implementare il layout grafico del main semplicemente richiamandolo attraverso la classe R
Il metodo riceve un intero che deve identificare la risorsa XML dove è definito il layout grafico. Quindi la costante R.layout.main identifica questa risorsa.
Un’altro metodo molto importante è findViewById(R.id.codicerisorsa) che in questo caso ricerca l’elemento in base all’ ID definito nella risorsa XML.

Detto ciò passiamo a come risolvere il problema della scomparsa di tale classe molto importante e senza la quale non sarebbe possibile identificare tutte le risorse della nostra applicazione

Il modo più veloce e immediato per rigenerare la classe R è quella di togliere la spunta da: Menù Project->Build Automatically e successivamente cercare di salvare, oppure andare su tasto dx Progetto(in Project Explorer)->Restore from Local Hystory e dopo tornare a Menù Project->Build Automatically e rimettere il check.
(subito dopo verrà rigenerata la classe automaticamente)

Spero d’esser stato d’aiuto 😉
Grazie
Alessio

Ascoltare canzoni streaming con iphone in stadby

20130617-145250.jpg

Era da quando c’è stato l’aggiornamento all’iOS 6.1 che non è più possibile ascoltare canzoni su YouTube con l’iPhone in standBy, questo dovuto alla mancata regolarizzazione e rinnovamento del contratto tra Apple e YouTube.
Ho provato diverse app che permettevano di ascoltare la radio con l’iPhone in stadby e per questo non mi capacitavo sul fatto che nessuno aveva mai ancora pensato di creare una app parallela a youtube ma che possa svolgere quelle funzioni non permesse all’app di casa Google.
Sino a l’altro ieri…dove ho trovato nell’apple store la app PLAYTUBE
Solitamente tutte le applicazioni che passano da uno stato attivo ad uno stato di background continuano ad essere processate o vengono posti solo determinati servizi in pausa. Attraverso questa app, come già accennato potrete ascoltare le vostre canzoni anche se l’app viene messa in background, quindi così come accade durante il download delle applicazioni (ossia: La funzione di scaricamento in background permette di eseguire altre operazioni durante il download di dati multipli o di file di grandi dimensioni. ) anche quest’app prosegue lo scambio dei dati internet anche se posta in background.

PS: per chi non volesse scaricare quest’app c’è un trucco per ascoltare le canzoni mentre lo schermo del monitor è spento…e cioè quello di aprire safari, entrare nel sito youtube e cercare la canzone..all’avvio della stessa potrete spingere il pulsante per lo spegnimento e pigiate x 2 volte il tasto home, in tal modo l’ultima app funzionante è proprio lo stream di youtube e vi troverete i pulsanti per avviare la canzone.
I contro sono che allo sblocco dello schermo non potrete mettere il video in background..pena l’esclusione dello stesso.

Grazie
Alessio. Scannicchio