Autore Topic: ListView multicolonna con query differenti  (Letto 487 volte)

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
ListView multicolonna con query differenti
« il: 18 Gennaio 2011, 16:22:26 CET »
0
Questa listView con id=prodotti restituisce il nome del prodotto + la media del costo dei prodotti Rossi.

Codice (Java): [Seleziona]
        public void creaLista(){
               
        db=new MyDatabase(getApplicationContext());
        db.open();  
        String select = "Select *, ROUND(avg(num),2) as numdue from products where num>=0 and tipo=\"Rosso\" group by name";
        c = db.mDb.rawQuery(select, null);
                startManagingCursor(c);
        adapter=new SimpleCursorAdapter(
                        this,
                        R.layout.prodottidue,
                        c,
                        new String[]{MyDatabase.ProductsMetaData.NAME_KEY,"numdue"}, new int[]{R.id.name,R.id.number});
        prodotti.setAdapter(adapter);
        db.close();
        }

ora però se volessi aggiungere questa select; cioè media del costo dei prodotti Blu.
Codice (Java): [Seleziona]
String select = "Select *, ROUND(avg(num),2) as numdue from products where num>=0 and tipo=\"Blu\" group by name";
cosi da formare una list view con questo layout:

Nome prodotto      Media prezzo Rosso      Media prezzo Blu
     Scarpe                         150,00                          25,00


come posso fare, ho bisogno di una nuova listView e quindi un nuovo adapter?

finora riesco a visualizzare solo le prime 2 colonne cioè Nome prodotto e Media prezzo Rosso

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:ListView multicolonna con query differenti
« Risposta #1 il: 19 Gennaio 2011, 12:00:51 CET »
0
Ho provato cosi ma quello che ottengo è che la i dati della seconda select vanno a sovrascrivere i dati della prima select...
credo perchè la listView è la stessa...ma voglio riempire anche la terza colonna della listView con la select2

Codice (Java): [Seleziona]
 public void creaLista(){
               
        db=new MyDatabase(getApplicationContext());
        db.open();  
        String select = "Select *, ROUND(avg(num),2) as numdue from products where num>=0 and tipo=\"Rosso\" group by name";
        c = db.mDb.rawQuery(select, null);
                startManagingCursor(c);
        adapter=new SimpleCursorAdapter(
                        this,
                        R.layout.prodottidue,
                        c,
                        new String[]{MyDatabase.ProductsMetaData.NAME_KEY,"numdue"}, new int[]{R.id.name,R.id.number});
        prodotti.setAdapter(adapter);
         
        String select2 = "Select *, ROUND(avg(num),2) as numtre from products where num>=0 and tipo=\"Blu\" group by name";
        c2 = db.mDb.rawQuery(select2, null);
                startManagingCursor(c2);
        adapter2=new SimpleCursorAdapter(
                        this,
                        R.layout.prodottidue,
                        c2,
                        new String[]{"numtre"}, new int[]{R.id.numberdue});
        prodotti.setAdapter(adapter2);
        db.close();
        }

devo forse abbandonare questo tipo di adattamento della lista? non saprei
come potrei risolvere?