Autore Topic: Visualizzare risultati query in una ListView  (Letto 862 volte)

Offline Vincent

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: +2
    • Mostra profilo
Visualizzare risultati query in una ListView
« il: 31 Agosto 2011, 12:57:36 CEST »
0
Salve, vorrei un suggerimento.

Nella mia applicazione eseguo una query sul Content Provider. La query mi restituisce un Cursore.
Se volessi mostrare le varie "row" del cursore come elementi di una ListView qual'è il metodo più semplice e conveniente?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Visualizzare risultati query in una ListView
« Risposta #1 il: 31 Agosto 2011, 13:07:00 CEST »
0
Utilizzare un SimpleCursorAdapter, trovi un esempio in questo tutorial:

[medio] Creazione e utilizzo di un database SQLite - Android Developers Italia

Offline Vincent

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: +2
    • Mostra profilo
Re:Visualizzare risultati query in una ListView
« Risposta #2 il: 31 Agosto 2011, 16:57:42 CEST »
0
Sto cercando di fare in questo modo:

Codice (Java): [Seleziona]
startManagingCursor(c);
       
        ListAdapter adapterCursor = new SimpleCursorAdapter(this,
                R.layout.s3,
                c,
                new String[] { ProjectProvider.Poi.NAME, ProjectProvider.Poi.CATEGORY },
                new int[] { android.R.id.text1, android.R.id.text2 });
        setListAdapter(adapterCursor);

il layout è

Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
  <ListView android:id="@android:id/list"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"/>
  <ImageView android:layout_width="24dip"
                     android:layout_margin="5dip"
                     android:layout_height="24dip"
                     android:id="@+id/logo"
                     android:layout_centerVertical="true" />
  <TextView android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/text1"
                    android:textSize="22sp"
                    android:layout_toRightOf="@id/logo" />
  <TextView android:layout_width="fill_parent"
                      android:layout_height="wrap_content"
                      android:id="@+id/text2"
                      android:textSize="14sp"
                      android:layout_below="@id/text1"/>
</RelativeLayout>

La query viene eseguita e il codice non incontra errori, ma le righe della ListView restano vuote . Come mai?

Offline Vincent

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: +2
    • Mostra profilo
Re:Visualizzare risultati query in una ListView
« Risposta #3 il: 31 Agosto 2011, 17:03:07 CEST »
0
risolto...il problema era:

"android.R.id.text1" dentro il cursor adapter, dovevo eliminare "android" e lasciare R.id.text1....non che abbia capito bene il perchè ma adesso funziona

Offline Vincent

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: +2
    • Mostra profilo
Re:Visualizzare risultati query in una ListView
« Risposta #4 il: 31 Agosto 2011, 17:16:39 CEST »
0
avrei un altro dubbio, come faccio adesso a gestire l'evento del tocco di un elemento della ListView?

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Visualizzare risultati query in una ListView
« Risposta #5 il: 31 Agosto 2011, 17:41:55 CEST »
0
risolto...il problema era:

"android.R.id.text1" dentro il cursor adapter, dovevo eliminare "android" e lasciare R.id.text1....non che abbia capito bene il perchè ma adesso funziona

non hai ben chiare alcune cose, secondo me.
prima di procedere oltre, ti conviene approfondirle.

android.R.id.text1 cerca un id con nome text1 dentro le risorse standard di android.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/