Ho un filatore dati di carico per SQLitecarico dal filatore SQLite con il testo e il valore
ho campo id e il nome del campo nel database.
private void loadSpinnerDataHama() {
// database handler
DatabaseSpinner db = new DatabaseSpinner(getApplicationContext());
// Spinner Drop down elements
List<String> lables = db.getAllLabels();
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, lables);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spin2.setAdapter(dataAdapter);
}
public List<String> getAllLabels(){
List<String> labels = new ArrayList<String>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_LABELS;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
labels.add(cursor.getString(1));
} while (cursor.moveToNext());
}
// closing connection
cursor.close();
db.close();
// returning lables
return labels;
}
e il risultato è
Stati Uniti d'America -> valore è "USA"
France -> il valore è "Francia"
quando cambio il codice labels.add(cursor.getString(1));
-labels.add(cursor.getString(0));
e il risultato è
1 -> val ue è "1"
2 -> valore è "2"
provo con int position2 = spin2.getSelectedItemPosition()+1;
ma il valore è id/posizione del filatore, non l'ID di database.
come visualizzare il nome del campo sulla casella di selezione. ma il valore è id di nome
Esempio: Il display filatore:
Stati Uniti d'America -> valore è "1"
France -> valore è "2"
BR
Alex
stesso algoritmo quando vedo questo [http: // stackoverflow.com/domande/5424841/cosa-il-corretto-modo da implementare-valore-chiave-pair-in-filatore-in-Android]. provo con due metodi, con il tuo codice e con 'SimpleCursorAdapter' e funziona. grazie per il tuo aiuto @Leeeeeeelo –
Buon post! L'istruzione 'cursor.getString (0)' dovrebbe probabilmente essere 'cursor.getInt (0)' comunque. – dana
Hey ragazzi Sono nuovo ad Android, e ho davvero lo stesso requisito e sto provando la soluzione che hai proposto, ma non riesco a superarlo. Potete per favore pubblicare un progetto di esempio di lavoro per questo. Si prega di – sjpatel