Autore Topic: Download e creazione view  (Letto 1439 volte)

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Download e creazione view
« il: 16 Settembre 2013, 15:47:39 CEST »
0
Salve a tutti,
durante l'esecuzione della mia app vorrei scaricare un file xml da un server che poi servirà per generare la view di un'activity.
Mi date un suggerimento su qual è il modo migliore di trasferire il file già formattato sul server,in una cartella di appoggio presente sul mio dispositivo??
Grazie a tutti

Offline matttt

Re:Download e creazione view
« Risposta #1 il: 16 Settembre 2013, 18:26:47 CEST »
0
Cosa intendi di preciso con "già formattato"?
Considera che i file XML che usi come layout per activity e altri componenti vengono processati durante il build dell'app e nel pacchetto APK sono convervati in binario... da quanto ne so io non puoi a runtime caricare il layout da un file XML (ho letto in giro di qualcuno che provava a farlo tramite XmlPullParser ma senza successo)
Le mie apps su Google Play Store:

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:Download e creazione view
« Risposta #2 il: 17 Settembre 2013, 10:29:04 CEST »
0
e mi sai dire se c'è un altro modo per farlo??

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Download e creazione view
« Risposta #3 il: 17 Settembre 2013, 16:14:02 CEST »
0
Dimmi se erro: vuoi creare un file xml e metterlo nella tua cartella layout, prendendolo direttamente dalla risposta del un server?

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:Download e creazione view
« Risposta #4 il: 17 Settembre 2013, 17:29:23 CEST »
0
Non sbagli è proprio cosi ma credo di aver risolto ho solo un problema di coerenza del file. In pratica ho risolto realizzando una chiamata ad un file jsp che genera il file sul server; questo poi lo copio nella mia cartella e all'apertura della mia activity ho un layout "dinamico" cioè creato in base ai dati scaricati dal server. Ora il mio problema è questo: riesco sempre a prendere il file generato nella sessione di lavoro precedente credo perchè sul server l'xml non è ancora pronto e quindi l'app prende la versione vecchia, secondo te come potrei fare??

Offline matttt

Re:Download e creazione view
« Risposta #5 il: 17 Settembre 2013, 20:50:05 CEST »
0
In sostanza tu scrivi normalmente sopra il file di layout XML della tua activity ?!

Per quanto riguarda la tua ultima domanda... se hai dei dubbi sul file XML che scarichi potresti visualizzarne il contenuto tramite Log.d
Così capisci se il problema è lato server o lato app.

Se è lato server e il nuovo file di layout è disponibile magari è una questione di cache, in quel caso puoi guardare le varie opzioni di caching di HTTP (impostabili in JSP)... pragma: no-cache, expire-date, etc.
Se è lato app bisognerebbe vedere come l'hai strutturata... se scarichi un file prima che la main activity è stata creata potresti avere non pochi problemi... caricamento lento dell'app, download magai nel thread UI, etc.
Le mie apps su Google Play Store:

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:Download e creazione view
« Risposta #6 il: 20 Settembre 2013, 09:56:41 CEST »
0
Ciao, grazie per i tuoi spunti interessanti,
quello che sono riuscito a capire è che a volte non scarica proprio il file giusto. In realta XML non serve per generare la main activity ma una delle activity secondarie e il file cerco di scaricarlo prima di entrare nell'activity che debba avere questa view"dinamica".
Di solito funziona, a volte non lo fa al primo avvio dell'app dopo che sul server è stata cambiata la configurazione.
Che ne pensate?

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:Download e creazione view
« Risposta #7 il: 20 Settembre 2013, 10:07:54 CEST »
0
In tutta sincerità per me le cartelle di layout sono sempre state read-only e compilate dentro l'APK.
Per cui può darsi non abbia proprio capito che metodo stai usando.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:Download e creazione view
« Risposta #8 il: 20 Settembre 2013, 11:21:04 CEST »
0
Io genero il layout di una mia activity  tramite un file xml. Quello che voglio è che il file sia scaricato dal server e copiato nella cartella di appoggio dell'app prima che si possa aprire quella activity e quindi ottenere o no determinati dati in una list view. In generale la funzionalità c'è! il  mio problema è comprendere dove realizzare il download dal server e la scrittura del file all'interno del mio codice perchè a volte non scarica il file aggiornato.

Offline matttt

Re:Download e creazione view
« Risposta #9 il: 20 Settembre 2013, 20:13:01 CEST »
0
Dove salvi il file XML? Come lo applichi alla tua activity?

Considera che se devi solo caricare dati da remoto in una listview non ti dovrebbe neppure servire cambiare il layout caricandolo dall'esterno. Potresti anche prepararti un paio di layout per i singoli items della listview e caricare uno o l'altro in base alla conformazione dei dati remoti che hai.
Un'altra possibilità poi è usare la funzione View.setVisibility per far sparire (con GONE, non INVISIBLE) e par riapparire (con VISIBLE) determinate View del tuo layout.
Le mie apps su Google Play Store:

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:Download e creazione view
« Risposta #10 il: 23 Settembre 2013, 15:59:34 CEST »
0
Lo salvo in una cartella in cui si trovano tutti i file che usa l'app. Essa è sulla memoria del tablet. Lo applico tramite una classe che ho implementato. Le combinazioni erano troppe per cui non era possibile realizzarli tutti e applicarli dinamicamente, per l'altra soluzione si poteva fare ma chi ci ha lavorato prima di me realizzava tutto tramite xml e ho voluto seguire lo stesso percorso

Offline matttt

Re:Download e creazione view
« Risposta #11 il: 28 Settembre 2013, 11:18:57 CEST »
0
Ok ma quello che intendevo è che dalla documentazione di Android non dovrebbe essere possibile fare l'inflate di un XML a runtime. Vedi link:
LayoutInflater | Android Developers

Riporto la frase importante:
For performance reasons, view inflation relies heavily on pre-processing of XML files that is done at build time. Therefore, it is not currently possible to use LayoutInflater with an XmlPullParser over a plain XML file at runtime; it only works with an XmlPullParser returned from a compiled resource (R.something file.)

Tempo fa avevo visto anche questo:
android - How to inflate one layout to another layout with string search - Stack Overflow

Ma dalle mie prove comunque non avevo avuto successo nel caricare dinamicamente un layout a runtime.
Le mie apps su Google Play Store:

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:Download e creazione view
« Risposta #12 il: 30 Settembre 2013, 09:50:26 CEST »
0
si lo avevo letto anche io ma siccome a lavoro mi hanno chiesto di farlo, dopo qualche tentativo l'ho fatto. Per ora funziona così: all'avvio dell app viene chiamato un task asincrono che legge un file xml che è presente sul server e lo va a memorizzare nella cartela relativa all'app che si trova sul tablet. Quando poi viene chiamata l'activity che ha bisogno di quel xml per generare il layout essa troverà il file corretto e mi permetterà di vedere solo ciò che è scritto nell' xml

Offline uglyicons

  • Utente junior
  • **
  • Post: 88
  • UglyIcons - Great Apps (perlomeno ci proviamo)
  • Respect: +3
    • Mostra profilo
    • La mia app: EML Reader FREE
  • Dispositivo Android:
    Huawei Honour
  • Play Store ID:
    UglyIcons
  • Sistema operativo:
    Win
Re:Download e creazione view
« Risposta #13 il: 30 Settembre 2013, 11:25:12 CEST »
0
all'avvio dell app viene chiamato un task asincrono che legge un file xml che è presente sul server e lo va a memorizzare nella cartela relativa all'app che si trova sul tablet. Quando poi viene chiamata l'activity che ha bisogno di quel xml per generare il layout essa troverà il file corretto e mi permetterà di vedere solo ciò che è scritto nell' xml

Domanda stupida: nel programma hai qualche "semaforo" che ti impedisce di aprire la activity prima che sia stato del tutto scaricato il file XML ?


EML Reader FREE
Apri file e allegati EML e MSG da qualsiasi fonte.
Download su Play Store!

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:Download e creazione view
« Risposta #14 il: 30 Settembre 2013, 11:40:07 CEST »
0
no infatti ci stavo pensando..hai ragione.. solo che i miei capi mi direbbero che mino l'usabilità per cui mi baso sul fatto  che l'operazione è più rapida del tempo di splash