Try this to list all countries:
Locale[] locales = Locale.getAvailableLocales();
ArrayList<String> countries = new ArrayList<String>();
for (Locale locale : locales) {
String country = locale.getDisplayCountry();
if (country.trim().length() > 0 && !countries.contains(country)) {
countries.add(country);
}
}
Collections.sort(countries);
for (String country : countries) {
System.out.println(country);
}
ArrayAdapter<String> countryAdapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_spinner_item, countries);
countryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the your spinner
yourcountrySpinnerobj.setAdapter(countryAdapter);
or
Use Geonames client libraries
or
Use
geonames webservice
first create your account on Geonames and then use that username