Autore Topic: Simple Cursor Adapter con tabella db + immagine di risorsa  (Letto 907 volte)

Offline mrfalco

  • Utente junior
  • **
  • Post: 81
  • Respect: +2
    • Mostra profilo
    • www.falcodomingo.it
  • Dispositivo Android:
    Samsung Galazy S
  • Sistema operativo:
    Windows Vista
Simple Cursor Adapter con tabella db + immagine di risorsa
« il: 10 Marzo 2011, 18:47:09 CET »
0
Salve ragazzi volevo sapere se a qualcuno era mai capitato di caricare una listview da un SimpleCursorAdapter che a sua volta viene caricato da un cursor? io ho fatto questo:

Codice (Java): [Seleziona]
String[] from={"img","nome"}; //valori colonna db
        int[] to={R.id.salaImage,R.id.Name};//nomi di risorsa di row_item
     
        Cursor c =null; //inizializzo il cursore
        SimpleCursorAdapter adapter=null; //inizializzo SimpleC....
       
        try{
               
                c = db.query("reparti", null, null, null, null, null, null); //carico    il cursore della query
                startManagingCursor(c);
               
        }catch (SQLiteException e){
                Log.d("Main", e.getMessage());
         e.printStackTrace();
        }
       
        try {
                // setto l'adapere
            adapter=new SimpleCursorAdapter(
                        this,R.layout.row_item,c,from,to);
        }catch (Exception e){          
                Log.d("Main1", e.getMessage());
        }
       c=null;
               
       //aggancio alla listview l'adapter
        ((ListView)findViewById(R.id.lstSale)).setAdapter(adapter);
            }

Il codice è corretto ma visualizzo solo la lista unitamente alla descrizione,io vorrei far visualizzare anche una immagine fissa che ho nelle risorse.
Grazie
« Ultima modifica: 10 Marzo 2011, 18:52:36 CET da bradipao, Reason: aggiunto tag per codice JAVA »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Simple Cursor Adapter con tabella db + immagine di risorsa
« Risposta #1 il: 10 Marzo 2011, 19:42:56 CET »
0
Devi utilizzare un viewBinder... prova una roba del genere (l'ho scritto a memoria):

Codice (Java): [Seleziona]
adapter.setViewBinder(new ViewBinder() {
                       
        @Override
        public boolean setViewValue(View view, Object data, String textRepresentation) {
                if(view instanceOf ImageView){
                        ((ImageView) view).setImageResource((Integer)data);                            
                        return true;
                }
                return false;
        }
});

Offline mrfalco

  • Utente junior
  • **
  • Post: 81
  • Respect: +2
    • Mostra profilo
    • www.falcodomingo.it
  • Dispositivo Android:
    Samsung Galazy S
  • Sistema operativo:
    Windows Vista
Re:Simple Cursor Adapter con tabella db + immagine di risorsa
« Risposta #2 il: 10 Marzo 2011, 19:50:31 CET »
0
ok grazie ci provo e ti aggiorno

Offline mrfalco

  • Utente junior
  • **
  • Post: 81
  • Respect: +2
    • Mostra profilo
    • www.falcodomingo.it
  • Dispositivo Android:
    Samsung Galazy S
  • Sistema operativo:
    Windows Vista
Re:Simple Cursor Adapter con tabella db + immagine di risorsa
« Risposta #3 il: 10 Marzo 2011, 20:27:38 CET »
0
Scusami ma non ho capito bene dove inserire il codice io ho provato prima del setadapter della list view quindi dopo che l'adapter è stato lavorato ma mi da errori all'interno del blocco if

Codice (Java): [Seleziona]
       adapter.setViewBinder(new ViewBinder() {
         

                @Override
                public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
                        // TODO Auto-generated method stub
                        if(view instanceof ImageView){
                ((ImageView) view).setImageResource((Integer)cursor);                            
                return true;
        }

                        return false;
                }    
       });

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Simple Cursor Adapter con tabella db + immagine di risorsa
« Risposta #4 il: 10 Marzo 2011, 20:36:37 CET »
0
Mi sbaglio o hai aggiunto una parentesi?


Devi aggiungerlo prima di

Codice (Java): [Seleziona]
((ListView)findViewById(R.id.lstSale)).setAdapter(adapter);

PS: Ti consiglio di formattare il codice, in eclipse premi ctrl + alt + f

Offline mrfalco

  • Utente junior
  • **
  • Post: 81
  • Respect: +2
    • Mostra profilo
    • www.falcodomingo.it
  • Dispositivo Android:
    Samsung Galazy S
  • Sistema operativo:
    Windows Vista
Re:Simple Cursor Adapter con tabella db + immagine di risorsa
« Risposta #5 il: 10 Marzo 2011, 20:41:33 CET »
0
vedi cio' che ti dicevo...
grazie

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Simple Cursor Adapter con tabella db + immagine di risorsa
« Risposta #6 il: 10 Marzo 2011, 20:45:57 CET »
0
Effettivamente hai ragione... io ti ho suggerito il viewBinder per il SimpleAdapter e non per il SimpleCursorAdapter. Prova così

Codice (Java): [Seleziona]
       adapter.setViewBinder(new ViewBinder() {
         

                @Override
                public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
                        // TODO Auto-generated method stub
                        if(view instanceof ImageView){
                                ((ImageView) view).setImageResource(cursor.getInt(columnIndex));                            
                                return true;
                        }

                        return false;
                }
       });

Comunque se passi il mouse dove ci sono i numeri della riga ti dice che errore è!

Offline mrfalco

  • Utente junior
  • **
  • Post: 81
  • Respect: +2
    • Mostra profilo
    • www.falcodomingo.it
  • Dispositivo Android:
    Samsung Galazy S
  • Sistema operativo:
    Windows Vista
Re:Simple Cursor Adapter con tabella db + immagine di risorsa
« Risposta #7 il: 10 Marzo 2011, 20:49:34 CET »
0
Questo mi dice con il mouse sopra
Grazie

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Simple Cursor Adapter con tabella db + immagine di risorsa
« Risposta #8 il: 10 Marzo 2011, 20:53:21 CET »
0
Passando il mouse sopra dovrebbe dirti "Import ImageView" bla bla bla

Presumo tu sia totalmente nuovo a eclipse e a gli editor in generale :P

Offline mrfalco

  • Utente junior
  • **
  • Post: 81
  • Respect: +2
    • Mostra profilo
    • www.falcodomingo.it
  • Dispositivo Android:
    Samsung Galazy S
  • Sistema operativo:
    Windows Vista
Re:Simple Cursor Adapter con tabella db + immagine di risorsa
« Risposta #9 il: 10 Marzo 2011, 21:02:27 CET »
0
Ti sembrerà strano ma con il mouse sopra non mi diceva di importare ImageView sono andato a farlo in cima  a mano e ho risolto ti ringrazio tanto per la disponibilità e scusami per ieri.

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:Simple Cursor Adapter con tabella db + immagine di risorsa
« Risposta #10 il: 10 Marzo 2011, 21:08:26 CET »
0
Ti sembrerà strano ma con il mouse sopra non mi diceva di importare ImageView sono andato a farlo in cima  a mano e ho risolto ti ringrazio tanto per la disponibilità e scusami per ieri.

per gli import, con eclipse per fare veloce (su windows) si può anche fare: CTRL+SHIFT+O, cosi facendo fa il fix imports automaticamente!
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