Autore Topic: SimpleCursorAdapter vs ArrayAdapter  (Letto 1743 volte)

Offline ale88sv

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +1
    • Google+
    • Mostra profilo
    • Le Mie Apps
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ale88sv
  • Sistema operativo:
    Windows 7 / Ubuntu 12.4
SimpleCursorAdapter vs ArrayAdapter
« il: 25 Giugno 2012, 15:31:51 CEST »
0
Ciao a tutti,

volevo sapere a parità di layout, prestazionalmente parlando, quale dei due adapter è migliore ?

Spero di essermi spiegato :)

Grazie  !!!

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:SimpleCursorAdapter vs ArrayAdapter
« Risposta #1 il: 26 Giugno 2012, 18:27:42 CEST »
0
La domanda non é chiara, dato che l'uno lavora su Cursor mentre l'altro su array. Non sono generalmente sovrapponibili.
Forse intendevi questo: "É meglio usare un SimpleCursorAdapter o un ArrayAdapter a cui passo un array contenente valori ricavati attraverso un Cursor?"
É questo che intendevi?
Postate il LogCat LogCat LogCat LogCat LogCat

Offline ale88sv

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +1
    • Google+
    • Mostra profilo
    • Le Mie Apps
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ale88sv
  • Sistema operativo:
    Windows 7 / Ubuntu 12.4
Re:SimpleCursorAdapter vs ArrayAdapter
« Risposta #2 il: 26 Giugno 2012, 19:23:04 CEST »
0
Esattamente !  :-)

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:SimpleCursorAdapter vs ArrayAdapter
« Risposta #3 il: 26 Giugno 2012, 19:56:12 CEST »
0
Sono piuttosto sicuro che l'ArrayAdapter sia prestazionalmente piú conveniente nel momento in cui utilizzi la ListView.
Peró devi considerare che andare a recuperare tutti i dati all'inizio richiede un certo sforzo che aumenta con l'aumentare del numero di elementi nel Cursor.
In ogni caso non mi farei problemi di questo tipo. Dubito che usare l'uno o l'altro incida piú di tanto nell'esperienza d'uso dell'applicazione.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline ale88sv

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +1
    • Google+
    • Mostra profilo
    • Le Mie Apps
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ale88sv
  • Sistema operativo:
    Windows 7 / Ubuntu 12.4
Re:SimpleCursorAdapter vs ArrayAdapter
« Risposta #4 il: 26 Giugno 2012, 21:49:11 CEST »
0
Invece ho paura che le prestazioni cambino, nella listView ho un'immagine.

sostanzialmente ad ogni getView succede questo

SimpleCursor:
Prendo tutte le info dal cursor, apro il link, apro il file e lo trasformo in un bitmap

ArrayAdapter:
Ho già tutte le info caricate . Ma ho dovuto caricarle a priori.

Per ora sto usando il simplecursor, e un po' "scatta" volevo sapere se l'array adapter fosse una valida alternativa, o se conosci qualcosa di ancora + prestazionale .

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:SimpleCursorAdapter vs ArrayAdapter
« Risposta #5 il: 27 Giugno 2012, 07:56:53 CEST »
0
Se devi caricare immagini, tante e/o grandi, solitamente consigliano il "lazy loading".
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:SimpleCursorAdapter vs ArrayAdapter
« Risposta #6 il: 27 Giugno 2012, 09:40:59 CEST »
0
Se devi caricare immagini, tante e/o grandi, solitamente consigliano il "lazy loading".
si, è piu che un consiglio è un must, se non lo fai e per disgrazia hai tipo 100 immagini che stanno su un server moolto lento o sei in GPRS hai voglia...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline ale88sv

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +1
    • Google+
    • Mostra profilo
    • Le Mie Apps
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ale88sv
  • Sistema operativo:
    Windows 7 / Ubuntu 12.4
Re:SimpleCursorAdapter vs ArrayAdapter
« Risposta #7 il: 27 Giugno 2012, 09:51:03 CEST »
0
Se devi caricare immagini, tante e/o grandi, solitamente consigliano il "lazy loading".

Ho letto ora qualcosa sul lazy loading, se ho capito bene, il concetto è : scarica solo quello di cui hai bisogno ...
pero' io le immagini le ho tutte sul telefono non devo scaricare nulla.

si, è piu che un consiglio è un must, se non lo fai e per disgrazia hai tipo 100 immagini che stanno su un server moolto lento o sei in GPRS hai voglia...

Come detto sopra le immagini le ho gia' tutte le scarico quando installo l'app.

Quindi riassumendo ho una listview con tante immagini ( e non solo ), se uso il simplecursor adapter ogni volta devo aprire il file e creare il bitmap, mentre se uso l array adapter faccio tutto in un botta sola ma sara' + lento ad aprire l'activity ...

Cosa faccio ???:-\

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:SimpleCursorAdapter vs ArrayAdapter
« Risposta #8 il: 27 Giugno 2012, 10:39:52 CEST »
0
Ho letto ora qualcosa sul lazy loading, se ho capito bene, il concetto è : scarica solo quello di cui hai bisogno ...
pero' io le immagini le ho tutte sul telefono non devo scaricare nulla.

Come detto sopra le immagini le ho gia' tutte le scarico quando installo l'app.

Quindi riassumendo ho una listview con tante immagini ( e non solo ), se uso il simplecursor adapter ogni volta devo aprire il file e creare il bitmap, mentre se uso l array adapter faccio tutto in un botta sola ma sara' + lento ad aprire l'activity ...

Cosa faccio ???:-\
io farei il lazy loading anche con le immagini sul telefono....
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

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:SimpleCursorAdapter vs ArrayAdapter
« Risposta #9 il: 27 Giugno 2012, 10:56:57 CEST »
0
io farei il lazy loading anche con le immagini sul telefono....

Concordo!
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline ale88sv

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +1
    • Google+
    • Mostra profilo
    • Le Mie Apps
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ale88sv
  • Sistema operativo:
    Windows 7 / Ubuntu 12.4
Re:SimpleCursorAdapter vs ArrayAdapter
« Risposta #10 il: 27 Giugno 2012, 11:39:57 CEST »
0
Quindi dite che è indifferente l'adapter che adotto, se uso il lazy loading ?

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:SimpleCursorAdapter vs ArrayAdapter
« Risposta #11 il: 27 Giugno 2012, 11:49:18 CEST »
0
Quindi dite che è indifferente l'adapter che adotto, se uso il lazy loading ?
Si. Devi usare il lazy loading. Le immagini vengono caricate in background e la ui non rallenta.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline ale88sv

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +1
    • Google+
    • Mostra profilo
    • Le Mie Apps
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ale88sv
  • Sistema operativo:
    Windows 7 / Ubuntu 12.4
Re:SimpleCursorAdapter vs ArrayAdapter
« Risposta #12 il: 27 Giugno 2012, 14:59:55 CEST »
0
Quindi se ho capito bene, nell'adapter metto un asynctask che mi carichi le immagini dentro un'array e poi nella getView usero' l'arrary per visualizzarle ..

Corretto ?

Offline ale88sv

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +1
    • Google+
    • Mostra profilo
    • Le Mie Apps
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ale88sv
  • Sistema operativo:
    Windows 7 / Ubuntu 12.4
Re:SimpleCursorAdapter vs ArrayAdapter
« Risposta #13 il: 02 Luglio 2012, 15:20:40 CEST »
0
Aggiungo 2 domande :

Sapete come mai se uso il SimpleCursorAdapter non funziona il notifyDataSetChanged(), ho provato ad usare requery ma non funziona, mi ritorna una lista vuota.

Il discorso del lazyloading vale anche se le immagini non le devo scaricare ma le devo solo caricare dalla memoria esterna ?

Edit

Citazione
Il discorso del lazyloading vale anche se le immagini non le devo scaricare ma le devo solo caricare dalla memoria esterna ?

Mi ero dimenticato che mi avevate già risposto, comunque ho utilizzato il codice di thest1(https://github.com/thest1/LazyList) ed ora va tutto molto meglio !!!
« Ultima modifica: 02 Luglio 2012, 15:59:28 CEST da ale88sv »