Autore Topic: Popolamento chiave-valore di uno Spinner con lettura da db Sqlite  (Letto 383 volte)

Offline fanny983

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
0
Ciao a tutti,
ho un dubbio sul popolamento di uno Spinner con lettura di dati da db sqlite.
In HTML una combo è banalmente fatta in questo modo
<select>
  <option value="12">Rosso</option>
  <option value="34">Verde</option>
  <option value="56">Nero</option>
  <option value="78">Giallo</option>
</select>
ed i value spesso sono le chiavi lette dal db.
Non saprei (e non so nemmeno se si può applicare lo stesso ragionamento) come fare con gli Spinner.
Come faccio in uno Spinner ad inserire la coppia chiave-valore e far visualizzare solo il valore?
La lettura l'ho fatta in questo modo
Codice (Java): [Seleziona]
public List<Seller> getAllSellers(DbManagement db1){
        List<Seller> sellers = new ArrayList<Seller>();
       
        SQLiteDatabase db = db1.getReadableDatabase();
        try {
                String selectQuery = "SELECT Id, SellerName FROM Seller";
     
                Cursor cursor = db.rawQuery(selectQuery, null);
     
                if (cursor.moveToFirst()) {
                    do {
                        sellers.add(Seller(cursor.getInt(0), cursor.getString(1), null));
                    } while (cursor.moveToNext());
                }
         
                // closing connection
                cursor.close();
                db.close();
        } catch (Exception e) {
                        e.printStackTrace();
                }      
       
        return sellers;
               
    }
e poi
Codice (Java): [Seleziona]
Seller s = new Seller();
List<Seller> sellers = s.getAllSellers(db);

                Spinner spinner = (Spinner) findViewById(R.id.seller);
               
                ArrayAdapter<Seller> adapter = new ArrayAdapter<Seller>(this,
                            android.R.layout.simple_spinner_item, sellers);
                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                spinner.setAdapter(new NothingSelectedSpinnerAdapter(adapter,
                                R.layout.spinner_nothing_selected, this));
e lo spinner è questo
Codice (Java): [Seleziona]
<Spinner
            style="@style/WidgetCustomSettings"
            android:id="@+id/seller"
            android:prompt="@string/seller_prompt" />
La lettura la fa correttamente ma gli elementi poi li vedo male nell spinner (vedo il riferimento all'oggetto Seller instanziato).
Cosa sto sbagliando?

Post unito: 11 Ottobre 2013, 19:18:01 CEST
Ho risolto aggiungendo il metodo

public String toString() {
   return this.name;
}

all'oggetto Seller.

« Ultima modifica: 11 Ottobre 2013, 19:18:01 CEST da fanny983, Reason: Merged DoublePost »