Autore Topic: stampare in una listview i valori presi da un database sqlite  (Letto 1256 volte)

Offline xixietto

stampare in una listview i valori presi da un database sqlite
« il: 12 Giugno 2015, 16:53:57 CEST »
Salve, chi sa darmi una mano?
1)dovrei stampare in una listview i valori presi da un database sqlite
2)al click sulle varie righe della listview vorrei  ottenere l'id che fa riferimento alla posizione nel db
il mio codice attuale è questo.. ma mi stampa solo un valore(credo l'ultimo valore che dovrei ricevere)
Codice (Java): [Seleziona]
public class Add extends Activity {
    private DbHelper helper =new DbHelper(this);    //  private DbHelper helper = null;   //  helper= new DbHelper(this);
    ListView listView;

    @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add);

        listView = (ListView) findViewById(R.id.listView);
        SQLiteDatabase db = helper.getReadableDatabase();//sola lettura x fare query

        Cursor r = db.rawQuery("SELECT titolo FROM padre", null);
        while (r.moveToNext()) {

            // definisco un array di stringhe
           String[] nameproducts = new String[]{r.getString(0)};


// definisco un array
        final ArrayList<String> listp = new ArrayList<String>();
        for (int i = 0; i < nameproducts.length; i++) {
            listp.add(nameproducts[i]);
        }
        // creo e istruisco l'adattatore
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listp);

        // inietto i dati
        listView.setAdapter(adapter);
        }
    }


    }

Offline criscap1985

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
  • Dispositivo Android:
    GT-P5100
  • Sistema operativo:
    SlimKat (4.4.4)
Re:stampare in una listview i valori presi da un database sqlite
« Risposta #1 il: 08 Agosto 2015, 15:05:28 CEST »
Purtroppo è il mio stesso problema. Ma qui sembra un mortorio che un forum. Grazie.
« Ultima modifica: 08 Agosto 2015, 15:21:58 CEST da criscap1985, Reason: affari che non ti riguardano »

Offline xixietto

Re:stampare in una listview i valori presi da un database sqlite
« Risposta #2 il: 08 Agosto 2015, 17:20:44 CEST »
Mmm...conosci altri forum più attivi?

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline LonelyWolf

  • Utente junior
  • **
  • Post: 148
    • Mostra profilo
    • Traversate dei laghi
  • Dispositivo Android:
    GT-I9505, ALE-L21
  • Sistema operativo:
    Windows 7 32/64
Re:stampare in una listview i valori presi da un database sqlite
« Risposta #3 il: 10 Agosto 2015, 09:58:13 CEST »
Se metti l'inizializzazione delle variabili all'interno del ciclo che recupera i valori è normale che poi l'array contenga solo l'ultimo valore.

Codice: [Seleziona]
while (r.moveToNext()) {

            // definisco un array di stringhe
           String[] nameproducts = new String[]{r.getString(0)}; // <-- ogni volta che recuperi un valore azzera e inserisce quello corrente


// definisco un array
        final ArrayList<String> listp = new ArrayList<String>();
        for (int i = 0; i < nameproducts.length; i++) {
            listp.add(nameproducts[i]);
        }

Meglio se usi subito la lista:
Codice: [Seleziona]
ArrayList<String> listp = new ArrayList<String>();
while (r.moveToNext()) {
   listp.add(r.getString(0));
}
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listp);

Per il punto 2 devi poi impostare il listener della listview.
Se la mia risposta ti è utile, per favore un thanks!