Reputation: 177
How can I fill a spinner with an Object.
Example: I have User object userId, userName, firstName, lastName. I need to fill display spinner with firstName. If user select I need to get userId.
private void fillUserSpinner() {
spinnerUserList = findViewById(R.id.spinnerUserList);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,
android.R.layout.simple_dropdown_item_1line, userDbHelp.gteUserIds());
spinnerUserList.setAdapter(arrayAdapter);
}
private void onUserSelected() {
spinnerUserList = findViewById(R.id.spinnerUserList);
spinnerUserList.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
//Need to get selected userId
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
Upvotes: 0
Views: 100
Reputation: 76779
use AppCompatSpinner together with an ArrayAdapter ...
on case the items (POJO) of that ArrayAdapter
override method toString()
, one can skip manual assignment; that text is being displayed for the spinner's items then.
@Override
public String toString() {
return this.firstName;
}
Upvotes: 0
Reputation: 820
You want display firstname alone, add this code into your model class:
@Override
public String toString() {
return firstName;
}
Upvotes: 2