Populate spinner with years dynamically in Android?
You're very close. Try this:
ArrayList<String> years = new ArrayList<String>();int thisYear = Calendar.getInstance().get(Calendar.YEAR);for (int i = 1900; i <= thisYear; i++) { years.add(Integer.toString(i));}ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, years);Spinner spinYear = (Spinner)findViewById(R.id.yearspin);spinYear.setAdapter(adapter);
You just forgot to add
spinYear.setAdapter(adapter);
I hope it will help you.
static final String[] Months = new String[] { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
// Set years ArrayList<String> years = new ArrayList<String>(); int thisYear = Calendar.getInstance().get(Calendar.YEAR); for (int i = 1900; i <= thisYear; i++) { years.add(Integer.toString(i)); } ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, years); Spinner spinYear = (Spinner)findViewById(R.id.spinnerYears); spinYear.setAdapter(adapter); // Set months ArrayAdapter<String> adapterMonths = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, Months); adapterMonths.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Spinner spinMonths = (Spinner)findViewById(R.id.spinnerMonths); spinMonths.setAdapter(adapterMonths); // Set days ArrayList<String> days = new ArrayList<String>(); for (int i = 1; i <= 31; i++) { days.add(Integer.toString(i)); } ArrayAdapter<String> adapterDays = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, days); Spinner spinDays = (Spinner)findViewById(R.id.spinnerDays); spinDays.setAdapter(adapterDays);
I suggest the easy one:
ArrayList<String> yearsList = new ArrayList<>();int current_year = Calendar.getInstance().get(Calendar.YEAR);int count = 60;for (int i = 0; i < count; i++) { yearsList.add(Integer.toString(current_year - i));}ArrayAdapter<String> yearsAdapter = new ArrayAdapter<>(getContext(), R.layout.dropdown_item, yearsList);spinYear.setAdapter(yearsAdapter);
Just change the value of int count with how many years you want to print prior to the current year.