programacion - Completando Android Spinner con lista de objetos
populate spinner android (2)
Estoy poblando mi spinner con el objeto del usuario para trabajar más tarde con la identificación del usuario, pero la visualización de las listas de usuarios muestra la dirección del objeto, supongo.
Así que mi pregunta es cómo mostrar solo un atributo del objeto, en el caso del nombre de usuario, pero todavía llenar el spinner con todo el objeto
Aquí está mi código:
User user1 = new User("user1",24);
User user2 = new User("user2",26);
// Creating adapter for spinner
List<User> users = new ArrayList<User>();
users.add(user1);
users.add(user2);
ArrayAdapter<User> dataAdapter = new ArrayAdapter<User>(this,
android.R.layout.simple_spinner_item, users);
// Drop down layout style - list view
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner _EmpSpinner = null;
_EmpSpinner = (Spinner) findViewById(R.id.EmployeesSpinner);
// attaching data adapter to spinner
_EmpSpinner.setAdapter(dataAdapter);
Y esto es lo que muestra:
Intente anular el método toString()
en la clase User
:
@Override
public String toString() {
return this.name;
}
verifique el método public View getDropDownView(int position, View view, ViewGroup parent);
no será necesario que anule el método toString()
del objeto.
@Override
public View getDropDownView(int position, View view, ViewGroup parent) {
view = inflter.inflate(R.layout.obino_spinner_style, null);
TextView goalNameTV= (TextView)view.findViewById(R.id.ObiNoID_Spinner_Text);
goalNameTV.setText(goalItemList.get(position).getGoalType());
return view;
}