studio programacion not móviles item first desarrollo curso aplicaciones android data-structures spinner android-spinner populate

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; }