Autore Topic: Caricare dati ListView  (Letto 2259 volte)

Offline superrossini

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    Windows 7
Caricare dati ListView
« il: 26 Giugno 2012, 11:56:48 CEST »
0
Qualcuno mi sa dire o magari fornire un esempio di come si possano caricare direttamente i dati di un db in una ListView?

Offline pivoide

  • Utente junior
  • **
  • Post: 133
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy tab 10.1
  • Play Store ID:
    codicerosso
  • Sistema operativo:
    Ubuntu 11.04
Re:Caricare dati ListView
« Risposta #1 il: 26 Giugno 2012, 12:06:09 CEST »
0
Magari leggendo uno dei vari tutorial presenti in questo forum?  Oppure scrivendo che so 'listview from db android' e leggendo il primo link (in italiano) su come popolare una listview da un db sqlite?
Odio l'inglese e per un informatico non è il massimo

Offline superrossini

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    Windows 7
Re:Caricare dati ListView
« Risposta #2 il: 26 Giugno 2012, 12:14:03 CEST »
0
il problema è che i vari tutorial propongono dei cursor adapter, ma per fare ciò bisogna usare il metodo
Codice: [Seleziona]
startManagingCursor(Cursor c)che è stato deprecato. Io volevo qualche consiglio per una corretta realizazzione

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:Caricare dati ListView
« Risposta #3 il: 26 Giugno 2012, 12:15:47 CEST »
0
il problema è che i vari tutorial propongono dei cursor adapter, ma per fare ciò bisogna usare il metodo
Codice: [Seleziona]
startManagingCursor(Cursor c)che è stato deprecato. Io volevo qualche consiglio per una corretta realizazzione

Ne hanno parlato qua : startManagingCursor is deprecated - Android Developers Italia
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline superrossini

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    Windows 7
Re:Caricare dati ListView
« Risposta #4 il: 26 Giugno 2012, 13:16:34 CEST »
0
è che io avevo bisogno di un esempio, data la mia difficoltà a capire, che mi mostrasse il funzionamento del cursor loader direttamente sul db... sulle api ho trovato solo esempi che includevano l'utilizzo dei content provider

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Caricare dati ListView
« Risposta #5 il: 26 Giugno 2012, 16:02:34 CEST »
0
adb logcat | tee /tmp/logcat | grep TAG

Offline superrossini

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    Windows 7
Re:Caricare dati ListView
« Risposta #6 il: 26 Giugno 2012, 17:52:30 CEST »
0
grazie, sembra faccia al caso mio.. adesso provo

Offline superrossini

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    Windows 7
Re:Caricare dati ListView
« Risposta #7 il: 26 Giugno 2012, 18:07:27 CEST »
0
... ma c'è sempre quel ContentProvider di mezzo... non è possibile far senza?

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Caricare dati ListView
« Risposta #8 il: 26 Giugno 2012, 18:56:41 CEST »
0
Se vuoi usare CursorLoader vuole un content provider, è scritto nella documentazione e ho esaminato i sorgenti, viene chiamato esplicitamente.

L'alternativa è implementarsi un Cursor con un AsyncTaskLoader ma  il codice mi sembra più complesso che implementare un semplice content provider, il codice è già presente nell'esempio precedente basta adattarlo alle proprie esigenze.
adb logcat | tee /tmp/logcat | grep TAG

Offline superrossini

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    Windows 7
Re:Caricare dati ListView
« Risposta #9 il: 26 Giugno 2012, 19:10:53 CEST »
0
correggimi se sbaglio. I content provider per loro natura sono fatti per condividere le proprie informazioni con le altre applicazioni.

Visto che vorrei fare le cose fatte bene, e visto che sti ca**oni della google mi hanno deprecato in menagingCursor() adesso per fare una semplice listview che mi carica i dati dal db devo per forza implementarmi il mio Loader... peccato che non so come fare.

p.s Il mio appello per un esempio di loader che carica i dati direttamente dal db resta valito

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Caricare dati ListView
« Risposta #10 il: 26 Giugno 2012, 19:34:48 CEST »
0
Ti consiglio di leggere molto bene la documentazione di Google:

Content Providers | Android Developers

i content provider sono molto più generici e flessibili della tua semplice descrizione, sono utilizzati sia per i dati interni di Android, sia per gestire i dati di molti programmi.
adb logcat | tee /tmp/logcat | grep TAG

Offline superrossini

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    Windows 7
Re:Caricare dati ListView
« Risposta #11 il: 26 Giugno 2012, 21:59:39 CEST »
0
diciamo che non mi è mai capitato di usare i content provider sicchè mi affidavo a quella scarna descrizione che avevo letto da qualche parte... comunque secondo te (che sei sicuramente più preparato di me) quella soluzione proposta da google in quel esempio la cosidereresti efficente?

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Caricare dati ListView
« Risposta #12 il: 27 Giugno 2012, 00:10:54 CEST »
+1
Io ho fatto una prova con un DB Sqlite con tabelle e view con un codice che deriva dall'esempio precedente per visualizzare in più ListFragment delle liste formate da una ImageView e due TextView, funziona tutto benissimo, io non vedo inefficienza (dipende poi uno come la definisce), basta seguire le linee guide di Google. No riesco a capire questa paura di usare i content providers, basta fare delle prove modificando qualche esempio fornito da Google o altri che si trovano sull'argomento.
adb logcat | tee /tmp/logcat | grep TAG

Offline superrossini

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    Windows 7
Re:Caricare dati ListView
« Risposta #13 il: 27 Giugno 2012, 00:57:36 CEST »
0
mà.. non mi piace molto l'idea di prendere i dati dal db metterli nel content provaiders e poi visulizzarli sulla listview...mà... molto probabilmente ho capito malo.... farò qualche prova sicuramente

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Caricare dati ListView
« Risposta #14 il: 27 Giugno 2012, 09:02:51 CEST »
0
I dati non vengono messi nel content provaider, rimangono nel DB, il content provider fornisce, cancella, modifica solo i dati richiesti, è possibile anche selezionare un subset di dati. Adapter richiede solo gli elementi visualizzati dalla ListView quando servono, il CursorLoader con un proprio thread in background richiede i dati senza bloccare il thread principale (questo è un grosso vantaggio) e quando pronti vengono visualizzati. Sei i dati nel DB vengono modificati o si seleziona un nuovo subset è possibile notificare il cambiamento e tutta la pipe-line si aggiorna di conseguenza.
adb logcat | tee /tmp/logcat | grep TAG