jeudi 10 septembre 2015

Load data from SQLite in Spinner

I'm trying to load my employees names from my SQL to my spinner but instead this is what I get:

enter image description here

As you can see, my app's directory is getting loaded instead and I have no idea why.

My activity:

public class AddAbsenceForm extends Activity implements OnItemSelectedListener {

Spinner spinner;
Button buttonAdd;

public void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add_absence_form);

    //spinner element
    spinner = (Spinner) findViewById(R.id.names_spinner);

    //spinner click listener
    spinner.setOnItemSelectedListener(this);
    //loading spinner data from database
    loadSpinnerData();

}

private void loadSpinnerData() {
    //database handler
    LysandrosDatabaseAdapter db = new LysandrosDatabaseAdapter(getApplicationContext());
    //spinner drop down elements
    List<DataBean> list = db.getAllDat();
    //creating adapter for spinner
    ArrayAdapter<DataBean > dataAdapter = new ArrayAdapter<DataBean>(this, android.R.layout.simple_spinner_dropdown_item, list);
    //drop down layout style - list view with radio button
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    //attaching data adapter to spinner
    spinner.setAdapter(dataAdapter);
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    // On selecting a spinner item
    String list = parent.getItemAtPosition(position).toString();
    //showing selected spinner item
    Toast.makeText(parent.getContext(), "You selected: " + list, Toast.LENGTH_LONG).show();
}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}

}

Database method:

 public List <DataBean> getAllDat(){

    List<DataBean> list = new ArrayList<>();

    SQLiteDatabase db = helper.getReadableDatabase();

    String [] columns = {LysandrosHelper.UID, LysandrosHelper.NAME, LysandrosHelper.SURNAME, LysandrosHelper.DEPARTMENT, LysandrosHelper.WORKPLACE};
    Cursor cursor = db.query(LysandrosHelper.TABLE_NAME, columns, null, null, null, null, null);

    while (cursor.moveToNext()) {

        int index = cursor.getColumnIndex(LysandrosHelper.UID);
        int index2 = cursor.getColumnIndex(LysandrosHelper.NAME);
        int index3 = cursor.getColumnIndex(LysandrosHelper.SURNAME);
        int index4 = cursor.getColumnIndex(LysandrosHelper.DEPARTMENT);
        int index5 = cursor.getColumnIndex(LysandrosHelper.WORKPLACE);
        int cid = cursor.getInt(index);

        String persoName = cursor.getString(index2);
        String personSurname = cursor.getString(index3);
        String personDepartment = cursor.getString(index4);
        String personWorkplace = cursor.getString(index5);

        DataBean bean = new DataBean(cid, persoName, personSurname, personDepartment, personWorkplace);
        list.add(bean);
    }

    return list;
}

Spinner in XML:

   <Spinner
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/names_spinner"
        android:text="@string/select_employee">
    </Spinner>

Please somebody tell me what I'm missing

EDIT:

My DataBean class:

public class DataBean {

protected int id;
protected String name;
protected String surname;
protected String department;
protected String workplace;


public DataBean() {

}

public DataBean (int id, String name, String surname, String department, String workplace ) {
    this.id = id;
    this.name = name;
    this.surname = surname;
    this.department = department;
    this.workplace = workplace;
}

public DataBean (String name, String surname, String department, String workplace) {
    this.name = name;
    this.surname = surname;
    this.department = department;
    this.workplace = workplace;
}

public int getID() {
    return this.id;
}

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

public String getSurname() {
    return this.surname;
}

public String getDepartment() {
    return this.department;
}

public String getWorkplace() {
   return this.workplace;
}
}

Aucun commentaire:

Enregistrer un commentaire