Autore Topic: ListView con Query DB  (Letto 611 volte)

Offline Kecco11

  • Utente junior
  • **
  • Post: 99
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    GS4
ListView con Query DB
« il: 17 Luglio 2013, 17:52:09 CEST »
0
Ragazzi devo creare una listView con dati prelevati dal db tramite query.
Ho già preparato 2 file xml, in 1 ho inserito la listview e nell'altra le textView che dovranno visualizzare i vari campi....
Avete un esempio di come posso fare la query nel metodo GetView? oppure consigliatemi qlc....Grazie

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:ListView con Query DB
« Risposta #1 il: 17 Luglio 2013, 18:47:43 CEST »
0
Ci sono svariati tutorial nelle sezioni view e database al riguardo

Inviato dal mio Nexus S con Tapatalk 2

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 Kecco11

  • Utente junior
  • **
  • Post: 99
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    GS4
Re:ListView con Query DB
« Risposta #2 il: 17 Luglio 2013, 20:41:21 CEST »
0
Riesci ad aiutarmi a sistemare il codice??  mi sono un pò perso...8-)
Codice (Java): [Seleziona]
private void showDetails(){
                SQLiteDatabase db = new MioDbHelper(this).getReadableDatabase();
                final List<Dettagli> dettagli = new ArrayList<Lista_Pc.Dettagli>();
               
               
                        String sql = "SELECT nome_utente_pc, password_pc, note_pc FROM Password";
                        Cursor c = db.rawQuery(sql, null);
                       
                        while (c.moveToNext()){
                                Dettagli d = new Dettagli();
                               
                                d.nomeutente = c.getString(0);
                                d.password = c.getString(1);
                                d.note = c.getString(2);
                               
                               
                                dettagli.add(d);
                        }
                        c.close();
                }
               
               
               
                ListAdapter adapter = new ArrayAdapter<Dettaglio>(this, R.layout.tv_utente_pc, R.id.tv_password_pc, R.id.tv_note_pc, dettagli){
                       
                        @Override
                        public View getView(int position, View convertView, ViewGroup parent) {
                                View row = super.getView(position, convertView, parent);
                               
                               
                               
                                TextView tvNomeUtente, tvPassword, tvNote;
                               
                               
                                tvNomeUtente = (TextView) row.findViewById(R.id.tv_utente_pc);
                                tvPassword = (TextView) row.findViewById(R.id.tv_password_pc);
                                tvNote = (TextView) row.findViewById(R.id.tv_note_pc);
                               
                               
                                return row;
                        }
                };
                lista.setAdapter(adapter);
               
       
}
« Ultima modifica: 17 Luglio 2013, 23:12:37 CEST da Kecco11 »

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
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 Kecco11

  • Utente junior
  • **
  • Post: 99
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    GS4
Re:ListView con Query DB
« Risposta #4 il: 17 Luglio 2013, 23:10:31 CEST »
0
ho visto il primo link ma non sono riuscito ad adattarlo alla mia esigenza,
Riesci a dare un'occhiata al codice che ho postato sopra???
 :-\

Offline Kecco11

  • Utente junior
  • **
  • Post: 99
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    GS4
Re:ListView con Query DB
« Risposta #5 il: 24 Luglio 2013, 17:16:04 CEST »
0
ok scusate per il triplo post!!!! :-P
non ho alcun errore nel LogCat ma i dati non vengono visualizzati.
Potrebbe essere un errore della query??
Grazie
Codice: [Seleziona]
private void lista(){
        SQLiteDatabase db = new MioDbHelper(this).getReadableDatabase();
        final List<Dettaglio> dettagli = new ArrayList<Dettaglio>();
               
                String sql = "SELECT nome_utente_pc, password_pc, note_pc FROM Password";
                Cursor c = db.rawQuery(sql, null);
               
                while (c.moveToNext()){
                                Dettaglio d = new Dettaglio();
                                d.utentepc = c.getString(0);
                                d.passwordpc = c.getString(1);
                                d.notepc = c.getString(2);
                               
                                dettagli.add(d);
                }
                        c.close();
       
                        db.close();
               
        ListAdapter adapter = new ArrayAdapter(this, R.layout.dettaglio_lista_pc){
               
                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                        View row = super.getView(position, convertView, parent);
                       
                       
                        TextView utentepc, passpc, notepc;
                        utentepc = (TextView) row.findViewById(R.id.tv_utente_pc);
                                               
                        passpc = (TextView) row.findViewById(R.id.tv_password_pc);
                                               
                        notepc = (TextView) row.findViewById(R.id.tv_note_pc);
                       
                        Dettaglio d = dettagli.get(position);
                        utentepc.setText(d.utentepc+"");
                        passpc.setText(d.passwordpc+"");
                        notepc.setText(d.notepc+"");
                                        return row;
               
                }
               
        };
        lista.setAdapter(adapter);
        }
        class Dettaglio {
                 
                String utentepc;
                String passwordpc;
                String notepc;
               
        }
}


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:ListView con Query DB
« Risposta #6 il: 24 Luglio 2013, 17:18:39 CEST »
0
dopo le query, vai in debug e controlla quante entry hai nel cursor
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 crbin1

  • Utente junior
  • **
  • Post: 61
  • Respect: +6
    • labeltodo
    • Mostra profilo
    • Do Androids Dream of Electric Sheep?
  • Dispositivo Android:
    Galaxy Nexus
Re:ListView con Query DB
« Risposta #7 il: 24 Luglio 2013, 17:23:08 CEST »
0
Io intanto dopo aver ottenuto il cursore farei un

Codice (Java): [Seleziona]
if (c.moveToFirst){

}
« Ultima modifica: 24 Luglio 2013, 17:31:10 CEST da crbin1 »

Offline Kecco11

  • Utente junior
  • **
  • Post: 99
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    GS4
Re:ListView con Query DB
« Risposta #8 il: 24 Luglio 2013, 17:26:18 CEST »
0
fatto così ma continuo a non visualizzare nulla
Codice (Java): [Seleziona]
private MyDatabase db;
        protected void onCreate(android.os.Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);
                setContentView(R.layout.lista_log_pc);
               
                ListView lista=(ListView)findViewById(R.id.lista_pc);
               
               
                MyDatabase db=new MyDatabase(getApplicationContext());
        db.open();  //apriamo il db
       
        if(db.fetchProducts().getCount()==0){//inserimento dati da altra activity
           
           
         
          }
        Cursor c=db.fetchProducts(); // query
        startManagingCursor(c);
       
       
       
           
     SimpleCursorAdapter adapter=new SimpleCursorAdapter( //semplice adapter per i cursor
                this,
                R.layout.dettaglio_lista_pc, //il layout di ogni riga/prodotto
                c,
                new String[]{MyDatabase.ProductsMetaData.NOME_UTENTE_PC,MyDatabase.ProductsMetaData.PASSWORD_PC,MyDatabase.ProductsMetaData.NOTE_PC},//questi colonne
                new int[]{R.id.tv_utente_pc,R.id.tv_password_pc,R.id.tv_note_pc});//in queste views
     
     lista.setAdapter(adapter); //la listview ha questo adapter
     
     db.close();
     
}
}
       
« Ultima modifica: 26 Luglio 2013, 00:48:33 CEST da Kecco11 »