I have a spinner that I populate with a cursor from database sqlite column, this works OK, but isn't ideal. I added another spinner to select a column and show it in spinner, but this is my problem when I build the adapter. This is my code:
cursor = myDB.obtenerColumna(getBaseContext(),elemento);
String[] columns = new String[] { "_id", "columna", "columnb", "columnc", "columnd" };
menudesplegable.setPrompt(getText(R.string.seleccionaEtiqueta));
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_spinner_item,cursor,
columns, new int[] {android.R.id.text1});
adapter.setDropDownViewResource
(android.R.layout.simple_spinner_dropdown_item);
I get columns from database correctly, but if I pass a cursor from other column the app fail building adapter. I try pass only name column in String[] but fail too.
Thanks.
I resolved this:
/**
* Crea el menú desplegable para seleccionar tiqueta.
*/
public void construirMenuDesplegable(String elemento) {
// get items of database using selected element in other spinner
cursor = myDB.obtenerColumna(getBaseContext(), elemento);
menudesplegable.setPrompt(getText(R.string.seleccionaEtiqueta));
// Create adapter
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_spinner_item, cursor,
new String[] { elemento }, new int[] { android.R.id.text1 });
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Indicate adapter
menudesplegable.setAdapter(adapter);
try {
myDB.close();
} catch (Exception e) {
Log.e("miError", "Error al cerrar db", e);
}
}
/**
* Build spinner for select a element for show in other spinner.
*/
public void construirMenuDesplegable2() {
// Create adapter
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(
this, R.array.listables, R.layout.custom_spinner);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Indicate adapter
menudesplegable2.setAdapter(adapter2);
}