Autore Topic: Riempire layout con dati di un ResultSet (JDBC)  (Letto 851 volte)

Offline francesco.disciascio

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Riempire layout con dati di un ResultSet (JDBC)
« il: 23 Febbraio 2012, 22:37:35 CET »
0
Ciao a tutti,
ho sviluppato un'applicazione con un db locale SQlite; per riempire un layout di tipo simple_list_item_2 effettuo questa chiamata:
setListAdapter(new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, c, new String[]
          { Carico_Impiantabile_Table.LOTTO, Carico_Impiantabile_Table.REF }, new int[]
          { android.R.id.text1, android.R.id.text2 }));

ovviamente il cursor c è riempito con i dati presi dalla query al db. Tutto funziona come deve: ho la lista dei dati all'interno del layout.

Ora, ho preso il mio db e l'ho hostato in una webservice. Per connettermi, utilizzo i driver JDBC di Java. Riesco a connettermi al db e ad effettuare le stesse query che facevo con SQlite. Il mio problema è che non posso passare un oggetto ResultSet alla chiamata precedente, perchè un cast tra i due oggetti non è possibile...
Domanda: come faccio a ricreare lo stesso layout avendo un ResultSet e non un cursor?
Il layout è cosi composto:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:weightSum="1">
<TextView  
   android:layout_width="fill_parent"
   android:layout_height="wrap_content" android:id="@+id/question" android:text="prova"/>
<TextView
   android:id="@+id/answer"
   android:layout_height="wrap_content" android:layout_width="match_parent" android:text="prova"></TextView>
</LinearLayout>

Qualcuno sa darmi una mano???
Grazie!A presto

Francesco

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Riempire layout con dati di un ResultSet (JDBC)
« Risposta #1 il: 23 Febbraio 2012, 23:50:28 CET »
0
Dal ResultSet crei un ArrayList e usi un  ArrayAdapter.

Offline francesco.disciascio

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Re:Riempire layout con dati di un ResultSet (JDBC)
« Risposta #2 il: 24 Febbraio 2012, 09:19:33 CET »
0
Ricky scusami, potresti scrivere due righe di esempio? Te ne sarei grato...grazie!

Offline francesco.disciascio

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Re:Riempire layout con dati di un ResultSet (JDBC)
« Risposta #3 il: 27 Febbraio 2012, 00:02:29 CET »
0
Il problema è che l'arrayadapter non funge con i layout tipo simple_list_item_2
dall'xml del layout si può notare che si tratta di due textview...
infatti, se piazzo tutti i valori su una sola textview essi vengono visualizzati, ma io necessito di riempire un layout con due textview...e arrayadapter non lo permette...
da qualche parte ho letto che si può utilizzare un simpleadapter, passando come parametro una hashmap...ma non sono riuscito a capire come passare da un arraylist ad un hasmap...oppure creare un hashmap dal resultset...
aiuto!
grazie

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo

Offline francesco.disciascio

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Re:Riempire layout con dati di un ResultSet (JDBC)
« Risposta #5 il: 27 Febbraio 2012, 00:31:09 CET »
0
prima di leggere la tua risposta ho fatto questo:

Codice (Java): [Seleziona]
List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();
                        while(rs.next()){
                            HashMap<String, String> map = new HashMap<String, String>();
                            Log.i("RECORD", rs.getString(1).intern()+ " "+ rs.getString(2).intern());
                            map.put(rs.getString(1), rs.getString(2));

                            fillMaps.add(map);
                        }
                 
                     setListAdapter(new SimpleAdapter(this, fillMaps, android.R.layout.simple_list_item_2, new String[]
                                                              { Carico_Impiantabile_Table.LOTTO, Carico_Impiantabile_Table.REF }
                                                                                                        , new int[]{ android.R.id.text1, android.R.id.text2 }));

i valori nel resultset ci sono, ma non vengono visualizzati nel layout...perchè?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Riempire layout con dati di un ResultSet (JDBC)
« Risposta #6 il: 27 Febbraio 2012, 14:07:14 CET »
0
C'è un tutorial a riguardo, dagli un occhio :)

Inviato dal mio HTC Desire usando Tapatalk

Offline francesco.disciascio

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
Re:Riempire layout con dati di un ResultSet (JDBC)
« Risposta #7 il: 27 Febbraio 2012, 14:35:29 CET »
0
Ricky,
ti riferisci a quello indicato da te nella risposta precedente o a questo http://www.anddev.it/index.php/topic,413.0.html?
Grazie e scusami se disturbo...
« Ultima modifica: 27 Febbraio 2012, 14:40:30 CET da francesco.disciascio »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Riempire layout con dati di un ResultSet (JDBC)
« Risposta #8 il: 27 Febbraio 2012, 15:08:56 CET »
0
Il secondo :)

Inviato dal mio HTC Desire usando Tapatalk