使用微调器从Contry name获取Android国家/地区代码

使用微调器从Contry name获取Android国家/地区代码,android,spinner,country-codes,Android,Spinner,Country Codes,在我的android应用程序中,有一个手机号码验证部分,用于所有城市的字符串数组,我们可以从spinner中选择所有国家的名称。。我还有密码。。我需要的是当用户从微调器中选择一个cUnity名称时。。其特殊的ISD cde在编辑文本中没有显示。。。我不需要做什么 我正在付出我所做的 <string-array name="country_arrays"> <item>Afghanistan</item> <item>

在我的android应用程序中,有一个手机号码验证部分,用于所有城市的字符串数组,我们可以从spinner中选择所有国家的名称。。我还有密码。。我需要的是当用户从微调器中选择一个cUnity名称时。。其特殊的ISD cde在编辑文本中没有显示。。。我不需要做什么

我正在付出我所做的

<string-array name="country_arrays">
        <item>Afghanistan</item>
        <item>Aland Islands</item>
<item>Albania</item>
<item>Algeria</item>
<item>American Samoa</item>
<item>Andorra</item>
<item>Angola</item>
<item>Anguilla</item>
<item>Antarctica</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>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>Bouvet Island</item>
<item>Brazil</item>
<item>British Indian Ocean Territory</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>Cape Verde</item>
<item>Cayman Islands</item>
<item>Central African Republic</item>
<item>Chad</item>
<item>Chile</item>
<item>China</item>
<item>Christmas Island</item>
<item>Cocos (Keeling) Islands</item>
<item>Colombia</item>
<item>Comoros</item>
<item>Congo</item>
<item>Cook Islands</item>
<item>Costa Rica</item>
<item>Cote d\'Ivoire</item>
<item>Croatia</item>
<item>Cuba</item>
<item>Cyprus</item>
<item>Czech Republic</item>
<item>Democratic Republic of the Congo</item>
<item>Denmark</item>
<item>Djibouti</item>
<item>Dominica</item>
<item>Dominican Republic</item>
<item>East Timor</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>Faeroe Islands</item>
<item>Falkland Islands</item>
<item>Fiji</item>
<item>Finland</item>
<item>Former Yugoslav Republic of Macedonia</item>
<item>France</item>
<item>French Guiana</item>
<item>French Polynesia</item>
<item>French Southern Territories</item>
<item>Gabon</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>Guinea</item>
<item>Guinea-Bissau</item>
<item>Guyana</item>
<item>Haiti</item>
<item>Heard Island and McDonald Islands</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>Israel</item>
<item>Italy</item>
<item>Jamaica</item>
<item>Japan</item>
<item>Jordan</item>
<item>Kazakhstan</item>
<item>Kenya</item>
<item>Kiribati</item>
<item>Kuwait</item>
<item>Kyrgyzstan</item>
<item>Laos</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>Madagascar</item>
<item>Malawi</item>
<item>Malaysia</item>
<item>Maldives</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>Montserrat</item>
<item>Morocco</item>
<item>Mozambique</item>
<item>Myanmar</item>
<item>Namibia</item>
<item>Nauru</item>
<item>Nepal</item>
<item>Netherlands</item>
<item>Netherlands Antilles</item>
<item>New Caledonia</item>
<item>New Zealand</item>
<item>Nicaragua</item>
<item>Niger</item>
<item>Nigeria</item>
<item>Niue</item>
<item>Norfolk Island</item>
<item>North Korea</item>
<item>Northern Marianas</item>
<item>Norway</item>
<item>Oman</item>
<item>Pakistan</item>
<item>Palau</item>
<item>Panama</item>
<item>Papua New Guinea</item>
<item>Paraguay</item>
<item>Peru</item>
<item>Philippines</item>
<item>Pitcairn Islands</item>
<item>Poland</item>
<item>Portugal</item>
<item>Puerto Rico</item>
<item>Qatar</item>
<item>Reunion</item>
<item>Romania</item>
<item>Russia</item>
<item>Rwanda</item>
<item>Sqo Tome and Principe</item>
<item>Saint Helena</item>
<item>Saint Kitts and Nevis</item>
<item>Saint Lucia</item>
<item>Saint Pierre and Miquelon</item>
<item>Saint Vincent and the Grenadines</item>
<item>Samoa</item>
<item>San Marino</item>
<item>Saudi Arabia</item>
<item>Senegal</item>
<item>Seychelles</item>
<item>Sierra Leone</item>
<item>Singapore</item>
<item>Slovakia</item>
<item>Slovenia</item>
<item>Solomon Islands</item>
<item>Somalia</item>
<item>South Africa</item>
<item>South Georgia and the South Sandwich Islands</item>
<item>South Korea</item>
<item>Spain</item>
<item>Sri Lanka</item>
<item>Sudan</item>
<item>Suriname</item>
<item>Svalbard and Jan Mayen</item>
<item>Swaziland</item>
<item>Sweden</item>
<item>Switzerland</item>
<item>Syria</item>
<item>Taiwan</item>
<item>Tajikistan</item>
<item>Tanzania</item>
<item>Thailand</item>
<item>The Bahamas</item>
<item>The Gambia</item>
<item>Togo</item>
<item>Tokelau</item>
<item>Tonga</item>
<item>Trinidad and Tobago</item>
<item>Tunisia</item>
<item>Turkey</item>
<item>Turkmenistan</item>
<item>Turks and Caicos Islands</item>
<item>Tuvalu</item>
<item>Virgin Islands</item>
<item>Uganda</item>
<item>Ukraine</item>
<item>United Arab Emirates</item>
<item>United Kingdom</item>
<item>United States</item>
<item>United States Minor Outlying Islands</item>
<item>Uruguay</item>
<item>Uzbekistan</item>
<item>Vanuatu</item>
<item>Vatican City</item>
<item>Venezuela</item>
<item>Vietnam</item>
<item>Wallis and Futuna</item>
<item>Western Sahara</item>
<item>Yemen</item>
<item>Yugoslavia</item>
<item>Zambia</item>
<item>Zimbabwe</item>

</string-array>



<Spinner
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:entries="@array/country_arrays"
        android:prompt="@string/country_prompt" />

阿富汗
阿兰群岛
阿尔巴尼亚
阿尔及利亚
美属萨摩亚
安道尔
安哥拉
安圭拉
南极洲
安提瓜和巴布达
阿根廷
亚美尼亚
阿鲁巴
澳大利亚
奥地利
阿塞拜疆
巴林
孟加拉国
巴巴多斯
白俄罗斯
比利时
伯利兹
贝宁
百慕大群岛
不丹
玻利维亚
波斯尼亚和黑塞哥维那
博茨瓦纳
布韦岛
巴西
英属印度洋领土
英属维尔京群岛
文莱
保加利亚
布基纳法索
布隆迪
柬埔寨
喀麦隆
加拿大
佛得角
开曼群岛
中非共和国
查德
智利
中国
圣诞岛
科科斯(基林)群岛
哥伦比亚
科摩罗
刚果
库克群岛
哥斯达黎加
科特迪瓦
克罗地亚
古巴
塞浦路斯
捷克共和国
民主刚果
丹麦
吉布提
多米尼加
多米尼加共和国
东帝汶
厄瓜多尔
埃及
萨尔瓦多
赤道几内亚
厄立特里亚
爱沙尼亚
埃塞俄比亚
法罗群岛
福克兰群岛
斐济
芬兰
前南斯拉夫马其顿共和国
法国
法属圭亚那
法属波利尼西亚
法属南部领地
加蓬
佐治亚州
德国
加纳
直布罗陀
希腊
格陵兰岛
格林纳达
瓜德罗普岛
关岛
危地马拉
几尼
几内亚比绍
圭亚那
海地
赫德岛和麦克唐纳岛
洪都拉斯
香港
匈牙利
冰岛
印度
印度尼西亚
伊朗
伊拉克
爱尔兰
以色列
意大利
牙买加
日本
乔丹
哈萨克斯坦
肯尼亚
基里巴斯
科威特
吉尔吉斯斯坦
老挝
拉脱维亚
黎巴嫩
莱索托
利比里亚
利比亚
列支敦士登
立陶宛
卢森堡
澳门
马达加斯加
马拉维
马来西亚
马尔代夫
马里
马耳他
马绍尔群岛
马提尼克岛
毛里塔尼亚
毛里求斯
马约特
墨西哥
密克罗尼西亚
摩尔多瓦
摩纳哥
蒙古国
蒙特塞拉特
摩洛哥
莫桑比克
缅甸
纳米比亚
瑙鲁
尼泊尔
荷兰
荷属安的列斯群岛
新喀里多尼亚
新西兰
尼加拉瓜
尼日尔
尼日利亚
纽埃
诺福克岛
朝鲜
北马里亚纳群岛
挪威
阿曼
巴基斯坦
帕劳
巴拿马
巴布亚新几内亚
巴拉圭
秘鲁
菲律宾
皮特凯恩群岛
波兰
葡萄牙
波多黎各
卡塔尔
重聚
罗马尼亚
俄罗斯
卢旺达
斯库多姆和普林西比
圣赫勒拿
圣基茨和尼维斯
圣卢西亚
圣皮埃尔和密克隆
圣文森特和格林纳丁斯
萨摩亚
圣马力诺
沙特阿拉伯
塞内加尔
塞舌尔
塞拉利昂
新加坡
斯洛伐克
斯洛文尼亚
所罗门群岛
索马里
南非
南乔治亚和南桑威奇群岛
南韩
西班牙
斯里兰卡
苏丹
苏里南
斯瓦尔巴和扬马延
斯威士兰
瑞典
瑞士
叙利亚
台湾
塔吉克斯坦
坦桑尼亚
泰国
巴哈马
冈比亚
多哥
托克劳
汤加
特立尼达和多巴哥
突尼斯
土耳其
土库曼斯坦
特克斯和凯科斯群岛
图瓦卢
维尔京群岛
乌干达
乌克兰
阿拉伯联合酋长国
大不列颠联合王国
美国
美国小离岛
乌拉圭
乌兹别克斯坦
瓦努阿图
梵蒂冈城
委内瑞拉
越南
沃利斯和富图纳
西撒哈拉
也门
南斯拉夫
赞比亚
津巴布韦

那么您想显示每个国家/地区的ISD代码?它可以使用IF语句或Switch来完成。但肯定需要很多代码。可以像这样使用数组或arrayList:

String[] ISD_CODE = {"+639","+123",......} //example only



   public void onItemSelected(AdapterView<?> adapter, View view,
                int position, long id) {
               final String result = ISD_CODE[position];
    }
String[]ISD_code={“+639”、“+123”、…}//仅示例
已选择公共视图(适配器视图适配器、视图、,
内部位置,长id){
最终字符串结果=ISD_代码[位置];
}

当然,它的位置必须与您所在国家/地区的位置相同,但我建议您必须使用哈希图。

那么您想在每个国家/地区显示ISD代码吗?它可以使用IF语句或Switch来完成。但肯定需要很多代码。可以像这样使用数组或arrayList:

String[] ISD_CODE = {"+639","+123",......} //example only



   public void onItemSelected(AdapterView<?> adapter, View view,
                int position, long id) {
               final String result = ISD_CODE[position];
    }
String[]ISD_code={“+639”、“+123”、…}//仅示例
已选择公共视图(适配器视图适配器、视图、,
内部位置,长id){
最终字符串结果=ISD_代码[位置];
}

当然,它的位置必须与您的国家/地区数组中的位置相同,但我建议您必须使用HashMap。

您可以将数组声明到strings.xml中

首先为每个国家/地区声明一个数组

<string-array name="data01">
    <item name="code">01</item>
    <item name="country">Albania</item>
</string-array>

<string-array name="data02">
    <item name="code">02</item>
    <item name="country">Algeria</item>
</string-array>
<!--
...
-->

01
阿尔巴尼亚
02
阿尔及利亚
然后声明数组的数组

<array name="countries">
    <item>@array/data01</item>
    <item>@array/data02</item>
    <!--     ...        -->
</array>

@数组/data01
@数组/data02
在您的活动中完成此操作后,您只需解析此数组内容并保留对国家和代码的引用

Resources r = getResources();
TypedArray countrieCodes = r.obtainTypedArray(R.array.countries);

ArrayList<String> country = new ArrayList<String>();
ArrayList<String> code = new ArrayList<String>();

int cpt = countrieCodes.length();
for (int i = 0; i < cpt; ++i) {
    int id = countrieCodes.getResourceId(i, 0);
    code.add(r.getStringArray(id)[0]);
    country.add(r.getStringArray(id)[1]);
}

countrieCodes.recycle(); 

final ArrayList<String> fCode = code;
final ArrayList<String> fCountry = country;

final Spinner p = (Spinner)findViewById(R.id.spinner1);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, country);
p.setAdapter(dataAdapter);
p.setOnItemSelectedListener(new OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        String selectedCountry = (String)p.getSelectedItem();
        int selectedPosition = fCountry.indexOf(selectedCountry);
        String correspondingCode = fCode.get(selectedPosition);
        // Here is your corresponding country code
        System.out.println(correspondingCode);
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub
    }
});
Resources r=getResources();
TypedArray countrieCodes=r.obtainTypedArray(r.array.countries);
ArrayList国家/地区=新ArrayList();
ArrayList代码=新的ArrayList();
int cpt=countrieCodes.length();
对于(int i=0;i
您可以在strings.xml中声明数组的数组

首先为每个国家/地区声明一个数组

<string-array name="data01">
    <item name="code">01</item>
    <item name="country">Albania</item>
</string-array>

<string-array name="data02">
    <item name="code">02</item>
    <item name="country">Algeria</item>
</string-array>
<!--
...
-->

01
阿尔巴尼亚
02
阿尔及利亚
然后声明数组的数组

<array name="countries">
    <item>@array/data01</item>
    <item>@array/data02</item>
    <!--     ...        -->
</array>

@阵列/数据