Retrieve a list of countries from the android OS
Asked Answered
J

10

41

I'm looking for a way to populate a spinner with a list of countries with their names. Can I retrieve it from the Android OS? Can someone please provide me an example?

John answered 18/3, 2012 at 17:10 Comment(1)
Retrieving it from the OS is hardly possible as the selection of locales is very limited. But I've created a library for that which includes the 130 most populous countries of the world: github.com/delight-im/Android-Countries It's free under the Apache License 2.0 and you just need to choose "New" - "Android Project from Existing Source" in Eclipse and then add it to your project as a library (in "Properties" - "Android").Dupaix
W
60

You might get some idea from the Locale class.

Call getAvailableLocales() then iterate the array & getDisplayCountry(). If it is the first time you've seen that country name, add it to an expandable list (e.g. an ArrayList instance).


E.G.

In Java, but the 3 classes from java.util are all available in Android.

import java.util.*;

class Countries {

    public static void main(String[] args) {
        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);
        }
        System.out.println( "# countries found: " + countries.size());
    }
}

Output on this desktop PC

Albania
Algeria
Argentina
Australia
..
Venezuela
Vietnam
Yemen
# countries found: 95
Press any key to continue . . .
Warman answered 18/3, 2012 at 17:20 Comment(6)
For a nicer user experience, set the spinner so that the country name in the default locale is selected.Warman
Thanks for your support Andrew it works fine for me. but it returns only 53 countries but i need to retrieve a complete list of countries. that should be possible isnt it?John
You might need to pull the information from the internet by parsing a document such as this. Ensure doing so does not violate the usage conditions of the site. Note that linked list has not 53, not 95, but 235 countries. In my surfing I saw lists of up to 253. That underlines that what one person considers a country, does not necessarily match what another person thinks is a country. Many of them are 'disputed' in some way.Warman
true i see what u mean but i thought java itself the would return the whole list of ISO countries. anyways thanks for andrew will have a look at it nowJohn
Nowadays that returns 247 countries, more than the official number of countries in the world(go figure), so coverage is no longer a problem.Spiffy
getAvailableLocales() is too much (big list), usually you just need base list of countriesIncursive
E
42

You can use Locale.getISOCountries() to get a list of all of the two letter country codes. From the two letter country code you can construct a Locale object and then use Locale.getDisplayName() to get the country name.

String[] isoCountryCodes = Locale.getISOCountries();
for (String countryCode : isoCountryCodes) {
    Locale locale = new Locale("", countryCode);
    String countryName = locale.getDisplayCountry();
}

Running Android 4.3 on a Galaxy Note 3, getISOCountries() returns 246 country codes, which is pretty close to the 249 officially assigned ISO country codes as of today (11/24/14).

Calling getAvailableLocales() only returns the device's installed locales which most likely will have far fewer distinct countries.

Externalism answered 24/11, 2014 at 20:25 Comment(0)
C
19

i have created a class for this i hope it might come in help .

public class CountryDetails {

public static String[] country = new String[]{"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla",

        "Antarctica", "Antigua and Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria",

        "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",

        "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana",

        "Brazil", "British Indian Ocean Territory", "British Virgin Islands", "Brunei", "Bulgaria",

        "Burkina Faso", "Burma (Myanmar)", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde",

        "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", "Christmas Island",

        "Cocos (Keeling) Islands", "Colombia", "Comoros", "Cook Islands", "Costa Rica",

        "Croatia", "Cuba", "Cyprus", "Czech Republic", "Democratic Republic of the Congo",

        "Denmark", "Djibouti", "Dominica", "Dominican Republic",

        "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia",

        "Ethiopia", "Falkland Islands", "Faroe Islands", "Fiji", "Finland", "France", "French Polynesia",

        "Gabon", "Gambia", "Gaza Strip", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece",

        "Greenland", "Grenada", "Guam", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana",

        "Haiti", "Holy See (Vatican City)", "Honduras", "Hong Kong", "Hungary", "Iceland", "India",

        "Indonesia", "Iran", "Iraq", "Ireland", "Isle of Man", "Israel", "Italy", "Ivory Coast", "Jamaica",

        "Japan", "Jersey", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kosovo", "Kuwait",

        "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein",

        "Lithuania", "Luxembourg", "Macau", "Macedonia", "Madagascar", "Malawi", "Malaysia",

        "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mayotte", "Mexico",

        "Micronesia", "Moldova", "Monaco", "Mongolia", "Montenegro", "Montserrat", "Morocco",

        "Mozambique", "Namibia", "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia",

        "New Zealand", "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea",

        "Northern Mariana Islands", "Norway", "Oman", "Pakistan", "Palau", "Panama",

        "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Pitcairn Islands", "Poland",

        "Portugal", "Puerto Rico", "Qatar", "Republic of the Congo", "Romania", "Russia", "Rwanda",

        "Saint Barthelemy", "Saint Helena", "Saint Kitts and Nevis", "Saint Lucia", "Saint Martin",

        "Saint Pierre and Miquelon", "Saint Vincent and the Grenadines", "Samoa", "San Marino",

        "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone",

        "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Korea",

        "Spain", "Sri Lanka", "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland",

        "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Timor-Leste", "Togo", "Tokelau",

        "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Turks and Caicos Islands",

        "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "Uruguay", "US Virgin Islands", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam",

        "Wallis and Futuna", "West Bank", "Yemen", "Zambia", "Zimbabwe"};

public static String[]  code = new String[]{"+93", "+355", "+213", "+1 684", "+376", "+244", "+1 264", "+672", "+1 268", "+54", "+374",

        "+297", "+61", "+43", "+994", "+1 242", "+973", "+880", "+1 246", "+375", "+32", "+501",

        "+229", "+1 441", "+975", "+591", "+387", "+267", "+55", "+246", "+1 284", "+673", "+359",

        "+226", "+95", "+257", "+855", "+237", "+1", "+238", "+1 345", "+236", "+235", "+56", "+86",

        "+61", "+891", "+57", "+269", "+682", "+506", "+385", "+53", "+357", "+420", "+243", "+45",

        "+253", "+1 767", "+1 849", "+1 829", "+1 809", "+593", "+20", "+503", "+240", "+291", "+372",

        "+251", "+500", "+298", "+679", "+358", "+33", "+689", "+241", "+220", "+970", "+995", "+49",

        "+233", "+350", "+30", "+299", "+1 473", "+1 671", "+502", "+224", "+245", "+592", "+509",

        "+379", "+504", "+852", "+36", "+354", "+91", "+62", "+98", "+964", "+353", "+44", "+972",

        "+39", "+225", "+1 876", "+81", "+44", "+962", "+7", "+254", "+686", "+381", "+965", "+996",

        "+856", "+371", "+961", "+266", "+231", "+218", "+423", "+370", "+352", "+853", "+389",

        "+261", "+265", "+60", "+960", "+223", "+356", "+692", "+222", "+230", "+262", "+52", "+691",

        "+373", "+377", "+976", "+382", "+1 664", "+212", "+258", "+264", "+674", "+977", "+31",

        "+599", "+687", "+64", "+505", "+227", "+234", "+683", "+672", "+850", "+1 670", "+47",

        "+968", "+92", "+680", "+507", "+675", "+595", "+51", "+63", "+870", "+48", "+351", "+1",

        "+974", "+242", "+40", "+7", "+250", "+590", "+290", "+1 869", "+1 758", "+1 599", "+508",

        "+1 784", "+685", "+378", "+239", "+966", "+221", "+381", "+248", "+232", "+65", "+421",

        "+386", "+677", "+252", "+27", "+82", "+34", "+94", "+249", "+597", "+268", "+46", "+41",

        "+963", "+886", "+992", "+255", "+66", "+670", "+228", "+690", "+676", "+1 868", "+216",

        "+90", "+993", "+1 649", "+688", "+256", "+380", "+971", "+44", "+1", "+598", "+1 340",

        "+998", "+678", "+58", "+84", "+681", "+970", "+967", "+260", "+263"};

public String[] getCountry() {
    return country;
}

public String[] getCode() {
    return code;
}
}
Cuneo answered 31/7, 2015 at 6:25 Comment(2)
length of array code= 237 and length of array country =235. can you tell me how to match country and code from your answer??Casimiracasimire
What about Localization?Icy
I
17

Here's a string array of country names in XML.

<string-array name="countries" formatted="false" translatable="false">
    <item>Afghanistan</item>
    <item>Albania</item>
    <item>Algeria</item>
    <item>American Samoa</item>
    <item>Andorra</item>
    <item>Angola</item>
    <item>Antigua and Barbuda</item>
    <item>Argentina</item>
    <item>Armenia</item>
    <item>Aruba</item>
    <item>Australia</item>
    <item>Austria</item>
    <item>Azerbaijan</item>
    <item>Bahamas</item>
    <item>Bahrain</item>
    <item>Bangladesh</item>
    <item>Barbados</item>
    <item>Belarus</item>
    <item>Belgium</item>
    <item>Belize</item>
    <item>Benin</item>
    <item>Bermuda</item>
    <item>Bhutan</item>
    <item>Bolivia</item>
    <item>Bosnia and Herzegovina</item>
    <item>Botswana</item>
    <item>Brazil</item>
    <item>British Virgin Islands</item>
    <item>Brunei</item>
    <item>Bulgaria</item>
    <item>Burkina Faso</item>
    <item>Burundi</item>
    <item>Cambodia</item>
    <item>Cameroon</item>
    <item>Canada</item>
    <item>Canary Islands</item>
    <item>Cape Verde</item>
    <item>Cayman Islands</item>
    <item>Central African Republic</item>
    <item>Ceuta and Melilla</item>
    <item>Chad</item>
    <item>Chile</item>
    <item>China</item>
    <item>Colombia</item>
    <item>Comoros</item>
    <item>Congo [DRC]</item>
    <item>Congo [Republic]</item>
    <item>Costa Rica</item>
    <item>Croatia</item>
    <item>Cuba</item>
    <item>Curaçao</item>
    <item>Cyprus</item>
    <item>Czech Republic</item>
    <item>Côte d’Ivoire</item>
    <item>Denmark</item>
    <item>Djibouti</item>
    <item>Dominica</item>
    <item>Dominican Republic</item>
    <item>Ecuador</item>
    <item>Egypt</item>
    <item>El Salvador</item>
    <item>Equatorial Guinea</item>
    <item>Eritrea</item>
    <item>Estonia</item>
    <item>Ethiopia</item>
    <item>Europe</item>
    <item>Faroe Islands</item>
    <item>Fiji</item>
    <item>Finland</item>
    <item>France</item>
    <item>French Guiana</item>
    <item>French Polynesia</item>
    <item>Gabon</item>
    <item>Gambia</item>
    <item>Georgia</item>
    <item>Germany</item>
    <item>Ghana</item>
    <item>Gibraltar</item>
    <item>Greece</item>
    <item>Greenland</item>
    <item>Grenada</item>
    <item>Guadeloupe</item>
    <item>Guam</item>
    <item>Guatemala</item>
    <item>Guernsey</item>
    <item>Guinea</item>
    <item>Guinea-Bissau</item>
    <item>Guyana</item>
    <item>Haiti</item>
    <item>Honduras</item>
    <item>Hong Kong</item>
    <item>Hungary</item>
    <item>Iceland</item>
    <item>India</item>
    <item>Indonesia</item>
    <item>Iran</item>
    <item>Iraq</item>
    <item>Ireland</item>
    <item>Isle of Man</item>
    <item>Israel</item>
    <item>Italy</item>
    <item>Jamaica</item>
    <item>Japan</item>
    <item>Jersey</item>
    <item>Jordan</item>
    <item>Kazakhstan</item>
    <item>Kenya</item>
    <item>Kiribati</item>
    <item>Kuwait</item>
    <item>Kyrgyzstan</item>
    <item>Laos</item>
    <item>Latin America</item>
    <item>Latvia</item>
    <item>Lebanon</item>
    <item>Lesotho</item>
    <item>Liberia</item>
    <item>Libya</item>
    <item>Liechtenstein</item>
    <item>Lithuania</item>
    <item>Luxembourg</item>
    <item>Macau</item>
    <item>Macedonia [FYROM]</item>
    <item>Madagascar</item>
    <item>Malawi</item>
    <item>Malaysia</item>
    <item>Mali</item>
    <item>Malta</item>
    <item>Marshall Islands</item>
    <item>Martinique</item>
    <item>Mauritania</item>
    <item>Mauritius</item>
    <item>Mayotte</item>
    <item>Mexico</item>
    <item>Micronesia</item>
    <item>Moldova</item>
    <item>Monaco</item>
    <item>Mongolia</item>
    <item>Montenegro</item>
    <item>Morocco</item>
    <item>Mozambique</item>
    <item>Myanmar [Burma]</item>
    <item>Namibia</item>
    <item>Nepal</item>
    <item>Netherlands</item>
    <item>New Caledonia</item>
    <item>New Zealand</item>
    <item>Nicaragua</item>
    <item>Niger</item>
    <item>Nigeria</item>
    <item>North Korea</item>
    <item>Northern Mariana Islands</item>
    <item>Norway</item>
    <item>Oman</item>
    <item>Pakistan</item>
    <item>Palau</item>
    <item>Palestine</item>
    <item>Panama</item>
    <item>Papua New Guinea</item>
    <item>Paraguay</item>
    <item>Peru</item>
    <item>Philippines</item>
    <item>Poland</item>
    <item>Portugal</item>
    <item>Puerto Rico</item>
    <item>Qatar</item>
    <item>Romania</item>
    <item>Russia</item>
    <item>Rwanda</item>
    <item>Réunion</item>
    <item>Saint Barthélemy</item>
    <item>Saint Kitts and Nevis</item>
    <item>Saint Lucia</item>
    <item>Saint Martin</item>
    <item>Saint Vincent and the Grenadines</item>
    <item>Samoa</item>
    <item>San Marino</item>
    <item>Saudi Arabia</item>
    <item>Senegal</item>
    <item>Serbia</item>
    <item>Seychelles</item>
    <item>Sierra Leone</item>
    <item>Singapore</item>
    <item>Sint Maarten</item>
    <item>Slovakia</item>
    <item>Slovenia</item>
    <item>Solomon Islands</item>
    <item>Somalia</item>
    <item>South Africa</item>
    <item>South Korea</item>
    <item>South Sudan</item>
    <item>Spain</item>
    <item>Sri Lanka</item>
    <item>Sudan</item>
    <item>Suriname</item>
    <item>Swaziland</item>
    <item>Sweden</item>
    <item>Switzerland</item>
    <item>Syria</item>
    <item>São Tomé and Príncipe</item>
    <item>Taiwan</item>
    <item>Tanzania</item>
    <item>Thailand</item>
    <item>Timor-Leste</item>
    <item>Togo</item>
    <item>Tonga</item>
    <item>Trinidad and Tobago</item>
    <item>Tunisia</item>
    <item>Turkey</item>
    <item>Turks and Caicos Islands</item>
    <item>U.S. Outlying Islands</item>
    <item>U.S. Virgin Islands</item>
    <item>Uganda</item>
    <item>Ukraine</item>
    <item>United Arab Emirates</item>
    <item>United Kingdom</item>
    <item>United States</item>
    <item>Uruguay</item>
    <item>Uzbekistan</item>
    <item>Vanuatu</item>
    <item>Venezuela</item>
    <item>Vietnam</item>
    <item>Western Sahara</item>        
    <item>Yemen</item>
    <item>Zambia</item>
    <item>Zimbabwe</item>
    <item>Åland Islands</item>
</string-array>
Iene answered 17/9, 2015 at 15:30 Comment(0)
A
16

Use geonames webservices :

  1. To get list of countries

http://api.geonames.org/countryInfoJSON?username=demo

Note : change username -> demo to your_username

  1. To get list of states according to country (use geonameId of 1st webservice result)

exa. For country INDIA ,geonameId=1269750

http://api.geonames.org/childrenJSON?geonameId=1269750&username=demo

  1. To get list of cities according to state (use geonameId of 2st webservice result)

exa. For Maharashtra state, geonameId=1264418

http://api.geonames.org/childrenJSON?geonameId=1264418&username=demo

Archiplasm answered 12/5, 2015 at 7:53 Comment(4)
Thanks that saved me a lot of timeTintoretto
is this service free? And it is limited?Nevels
Yes it is free for download & free of charge.For demo account, the daily limit is 30000 credits.Archiplasm
Awesome Kiran I tried it .It was very useful.Thanks a tonAlarice
L
10

I created a library (https://github.com/roomorama/AndroidCountryPicker) that display all countries and allow user to select the country. You can embed it in your own activity or show it as dialog.

Limnology answered 22/3, 2013 at 10:6 Comment(2)
Man, I have used your library and I loved it! It is great, good job. Thank you :)Crews
This was a very helpful library. I needed a list of country calling codes to choose from. I managed to refactor this library to get what I needed done in a few hours.Crystlecs
P
5

Here is a Kotlin function which will give you a sorted list

var normalArray     = arrayListOf<Country>()
fun preparedata() {
    for (countryCode in Locale.getISOCountries()) {
        val locale = Locale("",countryCode)
        var countryName: String? = locale.displayCountry
        if (countryName == null) {
            countryName = "UnIdentified"
        }
        val simpleCountry = Country(countryName,countryCode)
        normalArray.add(simpleCountry)
    }
    normalArray = ArrayList(normalArray.sortedWith(compareBy { it.countryName }))
}

Country is a data class

data class Country(val countryName:String, val countryCode:String){

}

Here is a sample project which displays country list and its details.

WorldCountries Kotlin

Pemphigus answered 29/11, 2017 at 6:19 Comment(0)
C
3

There is some error in the @Ameen Maheen solution is that..According to the Country name we are not getting the correct Country code...So I have corrected the list of the Countries and Countries code...There is around of 240 countries in the world...So there is the solution :)

CountryDetails class:-

public class CountryDetails {

public static String[] country = new String[]{
        "Afghanistan",
        "Albania",
        "Algeria",
        "American Samoa",
        "Andorra",
        "Angola",
        "Anguilla",
        "Antarctica",
        "Antigua and Barbuda",
        "Argentina",
        "Armenia",
        "Aruba",
        "Australia",
        "Austria",
        "Azerbaijan",
        "Bahamas",
        "Bahrain",
        "Bangladesh",
        "Barbados",
        "Belarus",
        "Belgium",
        "Belize",
        "Benin",
        "Bermuda",
        "Bhutan",
        "Bolivia",
        "Bosnia and Herzegovina",
        "Botswana",
        "Brazil",
        "British Indian Ocean Territory",
        "British Virgin",
        "Brunei",
        "Bulgaria",
        "Burkina Faso",
        "Burundi",
        "Cambodia",
        "Cameroon ",
        "Canada",
        "Cape Verde",
        "Cayman Islands",
        "Central African Republic",
        "Chad",
        "Chile",
        "China",
        "Christmas Island",
        "Cocos Islands",
        "Colombia",
        "Comoros",
        "Cook Islands",
        "Costa Rica",
        "Croatia",
        "Cuba ",
        "Curacao",
        "Cyprus ",
        "Czech Republic",
        "Democratic Republic of the Congo",
        "Denmark ",
        "Djibouti ",
        "Dominica ",
        "Dominican Republic",
        "East Timor",
        "Ecuador",
        "Egypt ",
        "El Salvador",
        "Equatorial Guinea",
        "Eritrea ",
        "Estonia ",
        "Ethiopia ",
        "Falkland Islands ",
        "Faroe Islands ",
        "Fiji ",
        "Finland ",
        "France",
        "French Polynesia",
        "Gabon ",
        "Gambia",
        "Georgia ",
        "Germany ",
        "Ghana ",
        "Gibraltar",
        "Greece ",
        "Greenland",
        "Grenada ",
        "Guam ",
        "Guatemala",
        "Guernsey ",
        "Guinea ",
        "Guinea-Bissau",
        "Guyana",
        "Haiti ",
        "Honduras ",
        "Hong Kong ",
        "Hungary ",
        "Iceland ",
        "India ",
        "Indonesia ",
        "Iran ",
        "Iraq ",
        "Ireland ",
        "Isle of Man ",
        "Israel",
        "Italy ",
        "Ivory Coast",
        "Jamaica ",
        "Japan ",
        "Jersey ",
        "Jordan ",
        "Kazakhstan",
        "Kenya ",
        "Kiribati",
        "Kosovo",
        "Kuwait ",
        "Kyrgyzstan",
        "Laos ",
        "Latvia",
        "Lebanon ",
        "Lesotho ",
        "Liberia ",
        "Libya ",
        "Liechtenstein",
        "Lithuania",
        "Luxembourg",
        "Macau ",
        "Macedonia",
        "Madagascar",
        "Malawi",
        "Malaysia",
        "Maldives ",
        "Mali ",
        "Malta ",
        "Marshall Islands ",
        "Mauritania",
        "Mauritius ",
        "Mayotte ",
        "Mexico ",
        "Micronesia",
        "Moldova ",
        "Monaco ",
        "Mongolia",
        "Montenegro",
        "Montserrat",
        "Morocco ",
        "Mozambique",
        "Myanmar ",
        "Namibia ",
        "Nauru ",
        "Nepal ",
        "Netherlands",
        "Netherlands Antilles",
        "New Caledonia ",
        "New Zealand ",
        "Nicaragua ",
        "Niger ",
        "Nigeria",
        "Niue ",
        "North Korea",
        "Northern Mariana Islands",
        "Norway ",
        "Oman ",
        "Pakistan",
        "Palau ",
        "Palestine",
        "Panama ",
        "Papua New Guinea",
        "Paraguay ",
        "Peru ",
        "Philippines ",
        "Pitcairn ",
        "Poland ",
        "Portugal",
        "Puerto Rico",
        "Qatar ",
        "Republic of the Congo",
        "Reunion ",
        "Romania ",
        "Russia",
        "Rwanda ",
        "Saint Barthelemy",
        "Saint Helena",
        "Saint Kitts and Nevis",
        "Saint Lucia",
        "Saint Martin",
        "Saint Pierre and Miquelon",
        "Saint Vincent and the Grenadines",
        "Samoa ",
        "San Marino",
        "Sao Tome and Principe",
        "Saudi Arabia ",
        "Senegal ",
        "Serbia ",
        "Seychelles",
        "Sierra Leone",
        "Singapore",
        "Sint Maarten",
        "Slovakia",
        "Slovenia",
        "Solomon Islands",
        "Somalia ",
        "South Africa",
        "South Korea ",
        "South Sudan ",
        "Spain ",
        "Sri Lanka",
        "Sudan ",
        "Suriname",
        "Svalbard and Jan Mayen ",
        "Swaziland ",
        "Sweden ",
        "Switzerland",
        "Syria ",
        "Taiwan",
        "Tajikistan",
        "Tanzania ",
        "Thailand ",
        "Togo ",
        "Tokelau ",
        "Tonga ",
        "Trinidad and Tobago ",
        "Tunisia ",
        "Turkey ",
        "Turkmenistan",
        "Turks and Caicos Islands",
        "Tuvalu ",
        "U.S. Virgin Islands",
        "Uganda ",
        "Ukraine ",
        "United Arab Emirates",
        "United Kingdom ",
        "United States ",
        "Uruguay ",
        "Uzbekistan ",
        "Vanuatu ",
        "Vatican ",
        "Venezuela ",
        "Vietnam ",
        "Wallis and Futuna",
        "Western Sahara",
        "Yemen ",
        "Zambia",
        "Zimbabwe"};

public static String[]  code = new String[]{ "93",
        "355",
        "213",
        "1-684",
        "376",
        "244",
        "1-264",
        "672",
        "1-268",
        "54",
        "374",
        "297",
        "61",
        "43",
        "994",
        "1-242",
        "973",
        "880",
        "1-246",
        "375",
        "32",
        "501",
        "229",
        " 1-441",
        "975",
        "591",
        " 387",
        "267",
        "55",
        "246",
        "1-284",
        "673",
        "359",
        "226",
        "257",
        " 855",
        "237",
        "1",
        "238",
        " 1-345",
        "236",
        "235",
        " 56",
        "86",
        " 61",
        "61",
        "57",
        "269",
        "682",
        " 506",
        "385",
        "53",
        "599",
        "357",
        "420",
        " 243",
        " 45",
        "253",
        "1-767",
        "1-809",
        "670",
        "593",
        "20",
        "503",
        "240",
        "291",
        "372",
        "251",
        "500",
        "298",
        "679",
        "358",
        "33",
        "689",
        "241",
        "220",
        "995",
        "49",
        "233",
        " 350",
        "30",
        "299",
        "1-473",
        "1-671",
        "502",
        "44-1481",
        "224",
        "245",
        "592",
        "509",
        "504",
        "852",
        "36",
        "354",
        "91",
        "62",
        "98",
        "964",
        "353",
        "44-1624",
        "972",
        "39",
        "225",
        "1-876",
        "81",
        "44-1534",
        "962",
        "7",
        "254",
        "686",
        "383",
        "965",
        "996",
        "856",
        "371",
        "961",
        "266",
        "231",
        "218",
        "423",
        "370",
        "352",
        "853",
        "389",
        "261",
        "265",
        "60",
        "960",
        "223",
        "356",
        "692",
        "222",
        "230",
        "262",
        "52",
        "691",
        "373",
        "377",
        "976",
        "382",
        "1-664",
        "212",
        "258",
        "95",
        "264",
        "674",
        "977",
        "31",
        "599",
        "687",
        "64",
        "505",
        "227",
        "234",
        "683",
        "850",
        "1-670",
        "47",
        "968",
        "92",
        "680",
        "970",
        "507",
        "675",
        "595",
        "51",
        "63",
        "64",
        "48",
        "351",
        "1-787",
        "974",
        "242",
        "262",
        "40",
        "7",
        "250",
        "590",
        "290",
        "1-869",
        "1-758",
        "590",
        "508",
        "1-784",
        "685",
        "378",
        "239",
        "966",
        "221",
        "381",
        "248",
        "232",
        "65",
        "1-721",
        "421",
        "386",
        "677",
        "252",
        "27",
        "82",
        "211",
        "34",
        "94",
        "249",
        "597",
        "47",
        "268",
        "46",
        "41",
        "963",
        "886",
        "992",
        "255",
        "66",
        "228",
        "690",
        "676",
        "1-868",
        "216",
        "90",
        "993",
        "1-649",
        "688",
        "1-340",
        "256",
        "380",
        "971",
        "44",
        "1",
        "598",
        "998",
        "678",
        "379",
        "58",
        "84",
        "681",
        "212",
        "967",
        "260",
        "263"

};

public static String[] getCountry() {
    return country;
}

public static String[] getCode() {
    return code;
}
}

And how to use these class is as follow:-

     ////GETTING THE COUNTRY AND CODE ARRAY ARE AS FOLLOW:-

         ArrayList<String> codeArrayList = new ArrayList<String>(Arrays.asList(CountryDetails.getCode())); 
         ArrayList<String> countryArrayList = new ArrayList<String>(Arrays.asList(CountryDetails.getCountry())); 


    /////SETTING THE ADAPTER ACCORDING TO THE COUNTRY NAMES

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(SignUpScreen.this, android.R.layout.simple_list_item_1, countryArrayList);

        YOUR_LIST_VIEW.setAdapter(adapter);///HERE YOUR_LIST_VIEW IS YOUR LISTVIEW NAME

        YOUR_LIST_VIEW.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(this,"COUNTRY NAME==>>"+countryArrayList.get(i),Toast.LENGTH_SHORT+" HERE IS THE COUNTY CODE==>>"+codeArrayList.get(i),Toast.LENGTH_SHORT).show();

            }
        });
Cineaste answered 12/7, 2016 at 5:45 Comment(0)
C
3

Kotlin version to get a list of coutries. From Locale.getAvailableLocales() we have to remove blank country name, remove duplicate and sort alphabetically.

Locale.getAvailableLocales()
        .map { it.displayCountry }
        .filter { it.trim().isNotBlank() }
        .distinct()
        .sorted()
Coauthor answered 12/8, 2020 at 9:10 Comment(0)
D
0

Here is a library i have published days ago, it's available on maven Central, You can get Countries,States and cities wiht one line of code, or you can just get the Countries, in addition to the ability to get their flags in svg format,

// Fetch all countries with their cities and states
List<Country> countries = Localisation.getAllCountriesStatesAndCities();

you might want to get countries without states and cities as follows

//Get Countries Only
List<Country> countriesList = Localisation.getCountriesList();

The library is available in github: https://github.com/rasmi-aw/Localisation-lib

You can find the android demo here: Android demo app

enter image description here

Dort answered 8/8, 2022 at 22:25 Comment(1)
Can I use the countries list into a spinner? I want to show a spinner with a countries and when the country is chosen, another spinner appears that shows the cities of the country chosen. Can you do that?Seko

© 2022 - 2024 — McMap. All rights reserved.