Filling the counter from the cursor in android

I have long been looking for an awning for this. Everything looks so simple, but I never make it work. I want to fill the skewer with my cursor. I am trying to use the SimpleCursorAdapter for this, as many sites say that I will, but I will never get it to work. Show me how easy it is :)

Thank you for your time!

My cursor

Cursor cursor = db.query(DATABASE_TABLE_Clients, new String[] {"_id", "C_Name"}, null, null, null, null, "C_Name");

My spinner

(Spinner) findViewById(R.id.spnClients);

My code

Cursor cursor_Names = SQLData.getClientNames();
startManagingCursor(cursor_Names);

String[] columns = new String[] { "C_Name" };
int[] to = new int[] { R.id.txt_Address };

SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_dropdown_item, cursor_Names, columns, to);
Spinner spnClients = (Spinner) findViewById(R.id.spnClients);
spnClients.setAdapter(mAdapter);
+5
source share
3 answers

The following code solved my problem. I missed the .setDropDownViewResource . After that, I used simple_spinner_dropdown_item , so I don't need to create my own layout.

    Cursor cursor_Names = SQLData.getClientNames();
    startManagingCursor(cursor_Names);

    String[] columns = new String[] { "C_Name" };
    int[] to = new int[] { android.R.id.text1 };

    SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursor_Names, columns, to);
    mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    Spinner spnClients = (Spinner) findViewById(R.id.spnClients);
    spnClients.setAdapter(mAdapter);
+7
source

. - :

mAdapter.setDropDownViewResource(R.layout.spinner_view_dropdown);

, spinner_view_dropdown.xml res/layout.

+5

I did it

    empresasSpinner = (Spinner) findViewById(R.id.empresasSpinner);

  ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
                    android.R.layout.simple_spinner_item, empresasAll.toArray(new EntidadObject[0]));                
            empresasSpinner.setAdapter(spinnerArrayAdapter);

Simple DTO

public class EntidadObject {
    private int id;
    private String nombre;
//GETTES and SETTERS
}        

DAO part

public class EntidadDao {
             //...

        public List<EntidadObject> getEmpresas() {
                Cursor cursor = sqLiteDatabase.rawQuery("SELECT * FROM empresas", null);
                List<EntidadObject> entidadObjects = new ArrayList<EntidadObject>();
                cursor.moveToFirst();
                do {
                    EntidadObject entidadObject = new EntidadObject();
                    entidadObject.setId(cursor.getInt(0));
                    entidadObject.setNombre(cursor.getString(1));

                    entidadObjects.add(entidadObject);
                } while (cursor.moveToNext());
                return entidadObjects;
            }
   }

So, I can catch the id of the select element with

EntidadObject eo = (EntidadObject)empresasSpinner.getSelectedItem();
              eo.getId();
0
source

All Articles