Search code examples
androidandroid-arrayadapter

How to poulate the spinner at run time?


I do not know what is wrong , All I wanted to do is to populate the Spinner at run time. But When I run my app on mobile it is populating the spinner with my path of class. Here is a code what I am doing

public class FullscreenActivity extends Activity {
    Spinner spSelectTeam;
    TextView tvTeam;
    ArrayList<TeamClass> teamClasses;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout2);
        init();
        teamClasses = populateList();
        //applying adapter
        ArrayAdapter myAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, teamClasses);
        spSelectTeam.setAdapter(myAdapter);
    }

    void init(){
        spSelectTeam = (Spinner) findViewById(R.id.sp_team);
        tvTeam = (TextView) findViewById(R.id.tv_team);
    }

    public ArrayList<TeamClass> populateList() {
        //ArrayList<TeamClass> myTeamName = new ArrayList<TeamClass>();
        ArrayList<TeamClass> teamClasses = new ArrayList<>();
        teamClasses.add(new TeamClass("----- All -----"));
        teamClasses.add(new TeamClass("Computer Direct"));
        teamClasses.add(new TeamClass("Datasys"));
        teamClasses.add(new TeamClass("Host Interactive"));
        return teamClasses;
    }
}

and the class for the adapter is

public class TeamClass {
    private String TeamName;

    public TeamClass(String teamName){
        this.TeamName = teamName;
    }

    public String getTeamName() {
        return TeamName;
    }

    public void setTeamName(String teamName) {
        TeamName = teamName;
    }
}

please help . thanks in advance


Solution

  • You need to override toString() for the TeamClass .