Я пытаюсь загрузить имена моих сотрудников из моего SQL к моей блесне, но вместо того, чтобы это то, что я получаю:Загрузка данные из SQLite в Spinner
Как вы можете видеть, каталог моего приложения является вместо этого загружается, и я понятия не имею, почему.
Моя активность:
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) {
}
}
метод База данных:
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 в XML:
<Spinner
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/names_spinner"
android:text="@string/select_employee">
</Spinner>
Пожалуйста, кто-нибудь сказать мне, что я пропускаю
EDIT:
Мой DataBean класс:
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;
}
}
EDIT 2: Моя раскладка меняется на это ..
перейдите для «пользовательского адаптера», так как ваш 'list' не является' строковым массивом' его 'custom list' – Rustam
, пожалуйста, объясните немного больше? Я довольно новый –
PLS опубликовать свой класс DataBean – Rajesh