代码之家  ›  专栏  ›  技术社区  ›  steven caesar

Android,如何在编辑文本中创建国家代码以验证电话号码?

  •  -2
  • steven caesar  · 技术社区  · 6 年前

    我想为我的应用程序创建一个OTP代码,那么如何为电话号码验证创建国家代码。 如果你已经解决了这样的问题,请分享给我。 谢谢

    4 回复  |  直到 6 年前
        1
  •  3
  •   steven caesar    6 年前

    谢谢你的回答, 通过使用library'com,我找到了解决问题的方法。hbb20:ccp:1.7.2’。

        2
  •  2
  •   Jyot    6 年前

    创建一个名为country\u代码的xml文件。xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <string-array name="country_code">
            <item>+93,</item>
            <item>+355,</item>
            <item>+213,</item>
            <item>+684,</item>
            <item>+376,</item>
            <item>+244,</item>
            <item>+1&#8211;264,</item>
            <item>+672,</item>
            <item>+1&#8211;268,</item>
            <item>+54,</item>
            <item>+374,</item>
            <item>+297,</item>
            <item>+61,</item>
            <item>+43,</item>
            <item>+994,</item>
            <item>+1&#8211;242,</item>
            <item>+973,</item>
            <item>+ 880,</item>
            <item>+1&#8211;246,</item>
            <item>+375,</item>
            <item>+32,</item>
            <item>+501,</item>
            <item>+229,</item>
            <item>+1&#8211;441,</item>
            <item>+975,</item>
            <item>+591,</item>
            <item>+387,</item>
            <item>+267,</item>
            <item>+55,</item>
            <item>+673,</item>
            <item>+359,</item>
            <item>+226,</item>
            <item>+257,</item>
            <item>+855,</item>
            <item>+237,</item>
            <item>+1,</item>
            <item>+238,</item>
            <item>+1&#8211;345,</item>
            <item>+236,</item>
            <item>+235,</item>
            <item>+56,</item>
            <item>+86,</item>
            <item>+61,</item>
            <item>+61,</item>
            <item>+57,</item>
            <item>+269,</item>
            <item>+242,</item>
            <item>+243,</item>
            <item>+682,</item>
            <item>+506,</item>
            <item>+385,</item>
            <item>+53,</item>
            <item>+357,</item>
            <item>+420,</item>
            <item>+45,</item>
            <item>+253,</item>
            <item>+1&#8211;767,</item>
            <item>+809,</item>
            <item>+593,</item>
            <item>+20,</item>
            <item>+503,</item>
            <item>+240,</item>
            <item>+291,</item>
            <item>+372,</item>
            <item>+251,</item>
            <item>+500,</item>
            <item>+298,</item>
            <item>+679,</item>
            <item>+358,</item>
            <item>+33,</item>
            <item>+594,</item>
            <item>+241,</item>
            <item>+220,</item>
            <item>+995,</item>
            <item>+49,</item>
            <item>+233,</item>
            <item>+350,</item>
            <item>+44,</item>
            <item>+30,</item>
            <item>+299,</item>
            <item>+1&#8211;473,</item>
            <item>+590,</item>
            <item>+1&#8211;671,</item>
            <item>+502,</item>
            <item>+224,</item>
            <item>+245,</item>
            <item>+592,</item>
            <item>+509,</item>
            <item>+504,</item>
            <item>+852,</item>
            <item>+36,</item>
            <item>+354,</item>
            <item>+91,</item>
            <item>+62,</item>
            <item>+98,</item>
            <item>+964,</item>
            <item>+353,</item>
            <item>+972,</item>
            <item>+39,</item>
            <item>+225,</item>
            <item>+1&#8211;876,</item>
            <item>+81,</item>
            <item>+962,</item>
            <item>+7,</item>
            <item>+254,</item>
            <item>+686,</item>
            <item>+850,</item>
            <item>+82,</item>
            <item>+965,</item>
            <item>+996,</item>
            <item>+856,</item>
            <item>+371,</item>
            <item>+961,</item>
            <item>+266,</item>
            <item>+231,</item>
            <item>+218,</item>
            <item>+423,</item>
            <item>+370,</item>
            <item>+352,</item>
            >
            <item>+853,</item>
            <item>+389,</item>
            <item>+261,</item>
            <item>+265,</item>
            <item>+60,</item>
            <item>+960,</item>
            <item>+223,</item>
            <item>+356,</item>
            <item>+692,</item>
            <item>+596,</item>
            <item>+222,</item>
            <item>+230,</item>
            <item>+269,</item>
            <item>+52,</item>
            <item>+691,</item>
            <item>+373,</item>
            <item>+377,</item>
            <item>+976,</item>
            <item>+382,</item>
            <item>+1&#8211;664,</item>
            <item>+212,</item>
            <item>+258,</item>
            <item>+95,</item>
            <item>+264,</item>
            <item>+674,</item>
            <item>+977,</item>
            <item>+31,</item>
            <item>+599,</item>
            <item>+687,</item>
            <item>+64,</item>
            <item>+505,</item>
            <item>+227,</item>
            <item>+234,</item>
            <item>+683,</item>
            <item>+672,</item>
            <item>+670,</item>
            <item>+47,</item>
            <item>+968,</item>
            <item>+92,</item>
            <item>+680,</item>
            <item>+507,</item>
            <item>+675,</item>
            <item>+595,</item>
            <item>+51,</item>
            <item>+63,</item>
            <item>+48,</item>
            <item>+689,</item>
            <item>+351,</item>
            <item>+1&#8211;787,</item>
            <item>+974,</item>
            <item>+262,</item>
            <item>+40,</item>
            <item>+7,</item>
            <item>+250,</item>
            <item>+290,</item>
            <item>+1&#8211;869,</item>
            <item>+1&#8211;758,</item>
            <item>+508,</item>
            <item>+1&#8211;784,</item>
            <item>+684,</item>
            <item>+378,</item>
            <item>+239,</item>
            <item>+966,</item>
            <item>+221,</item>
            <item>+381,</item>
            <item>+248,</item>
            <item>+232,</item>
            <item>+65,</item>
            <item>+421,</item>
            <item>+386,</item>
            <item>+677,</item>
            <item>+252,</item>
            <item>+27,</item>
            <item>+34,</item>
            <item>+94,</item>
            <item>+249,</item>
            <item>+597,</item>
            <item>+268,</item>
            <item>+46,</item>
            <item>+41,</item>
            <item>+963,</item>
            <item>+886,</item>
            <item>+992,</item>
            <item>+255,</item>
            <item>+66,</item>
            <item>+228,</item>
            <item>+690,</item>
            <item>+676,</item>
            <item>+1&#8211;868,</item>
            <item>+216,</item>
            <item>+90,</item>
            <item>+993,</item>
            <item>+1&#8211;649,</item>
            <item>+688,</item>
            <item>+44,</item>
            <item>+1,</item>
            <item>+256,</item>
            <item>+380,</item>
            <item>+971,</item>
            <item>+598,</item>
            <item>+998,</item>
            <item>+678,</item>
            <item>+39,</item>
            <item>+58,</item>
            <item>+84,</item>
            <item>+1&#8211;284,</item>
            <item>+1&#8211;340,</item>
            <item>+681,</item>
            <item>+967,</item>
            <item>+260,</item>
            <item>+263,</item>
    
    
        </string-array>
        <string-array name="country_name">
            <item>Afghanistan</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>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-Herzegovina</item>
            <item>Botswana</item>
            <item>Brazil</item>
            <item>Brunei Darussalam</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>Congo, Dem. Republic </item>
            <item>Cook Islands</item>
            <item>Costa Rica </item>
            <item>Croatia</item>
            <item>Cuba </item>
            <item>Cyprus</item>
            <item>Czech </item>
            <item>Denmark </item>
            <item>Djibouti</item>
            <item>Dominica </item>
            <item>Dominican</item>
            <item>Ecuador </item>
            <item>Egypt </item>
            <item>El Salvador</item>
            <item>Equatorial</item>
            <item>Eritrea </item>
            <item>Estonia </item>
            <item>Ethiopia </item>
            <item>Falkland Islands (Malvinas)</item>
            <item>Faroe Islands</item>
            <item>Fiji</item>
            <item>Finland </item>
            <item>France </item>
            <item>French Guiana</item>
            <item>Gabon</item>
            <item>Gambia </item>
            <item>Georgia </item>
            <item>Germany </item>
            <item>Ghana </item>
            <item>Gibraltar </item>
            <item>Great Britain </item>
            <item>Greece </item>
            <item>Greenland</item>
            <item>Grenada </item>
            <item>Guadeloupe (French) </item>
            <item>Guam (USA)</item>
            <item>Guatemala </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>Israel </item>
            <item>Italy</item>
            <item>Ivory </item>
            <item>Jamaica </item>
            <item>Japan </item>
            <item>Jordan </item>
            <item>Kazakhstan </item>
            <item>Kenya </item>
            <item>Kiribati </item>
            <item>Korea-North</item>
            <item>Korea-South </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>Macedonia </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 (French) </item>
            <item>Mauritania </item>
            <item>Mauritius Port</item>
            <item>Mayotte </item>
            <item>Mexico </item>
            <item>Micronesia </item>
            <item>Moldova </item>
            <item>Monaco</item>
            <item>Mongolia</item>
            <item>Montenegro </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 (French)</item>
            <item>New Zealand </item>
            <item>Nicaragua </item>
            <item>Niger </item>
            <item>Nigeria </item>
            <item>Niue </item>
            <item>Norfolk Island </item>
            <item>Northern Mariana Islands </item>
            <item>Norway</item>
            <item>Oman </item>
            <item>Pakistan </item>
            <item>Palau </item>
            <item>Panama </item>
            <item>Papua New Guinea Port</item>
            <item>Paraguay </item>
            <item>Peru </item>
            <item>Philippines </item>
            <item>Poland</item>
            <item>Polynesia (French) </item>
            <item>Portugal </item>
            <item>Puerto Rico </item>
            <item>Qatar </item>
            <item>Reunion (French) </item>
            <item>Romania </item>
            <item>Russia </item>
            <item>Rwanda </item>
            <item>Saint Helena </item>
            <item>Saint Kitts &amp; Nevis Anguilla</item>
            <item>Saint Lucia </item>
            <item>Saint Pierre and Miquelon</item>
            <item>Saint Vincent &amp; Grenadines </item>
            <item>Samoa </item>
            <item>San Marino </item>
            <item>Sao Tome and Principe</item>
            <item>Saudi Arabia</item>
            <item>Senegal </item>
            <item>Serbia </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>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>Taiwan </item>
            <item>Tajikistan</item>
            <item>Tanzania </item>
            <item>Thailand </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>U.K. </item>
            <item>USA </item>
            <item>Uganda </item>
            <item>Ukraine </item>
            <item>United Arab Emirates</item>
            <item>Uruguay </item>
            <item>Uzbekistan </item>
            <item>Vanuatu</item>
            <item>Vatican </item>
            <item>Venezuela</item>
            <item>Vietnam </item>
            <item>Virgin Islands (British) </item>
            <item>Virgin Islands (USA)</item>
            <item>Wallis and Futuna Islands</item>
            <item>Yemen</item>
            <item>Zambia </item>
            <item>Zimbabwe </item>
    
        </string-array>
    </resources>
    

    在EditText前面的活动布局中添加微调器

      <Spinner
                        android:id="@+id/spinner"
                        android:layout_width="match_parent"
                        android:layout_height="@dimen/inner_img_xxxl"
                        android:dropDownWidth="220dp" />
    

    在活动中设置适配器以显示所有国家/地区代码以及国家/地区名称。

       private void setDataToSpinner() {
            final ArrayList<String> countryCodeList = new ArrayList<>(Arrays.asList(getResources().getStringArray(R.array.country_code)));
            final ArrayList<String> countryNameList = new ArrayList<>(Arrays.asList(getResources().getStringArray(R.array.country_name)));
    
            ArrayAdapter<String> adp = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countryCodeList) {
    
                @Override
                public View getDropDownView(int position, View convertView, ViewGroup parent) {
                    View row = View.inflate(LoginActivity.this, R.layout.spinner_dropdown_view, null);
                    TextView countrycodeTV = row.findViewById(R.id.countrycodeTV);
                    TextView countrynameTV = row.findViewById(R.id.countrynameTV);
    
                    countrycodeTV.setText(countryCodeList.get(position));
                    countrynameTV.setText(countryNameList.get(position));
    
                    AppController.getInstance().setTypefaceNeon(countrycodeTV);
                    AppController.getInstance().setTypefaceNeon(countrynameTV);
                    return row;
                }
    
    
                public View getView(int position, View convertView, ViewGroup parent) {
                    View row = View.inflate(LoginActivity.this, R.layout.spinner_get_view, null);
                    TextView countrycodeTV = row.findViewById(R.id.countrycodeTV);
                    TextView countrynameTV = row.findViewById(R.id.countrynameTV);
                    AppController.getInstance().setTypefaceNeon(countrycodeTV);
                    AppController.getInstance().setTypefaceNeon(countrynameTV);
                    countrycodeTV.setText(countryCodeList.get(position));
                    countrynameTV.setText(countryNameList.get(position));
                    return row;
                }
            };
    
    
            adp.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            binding.spinner.setAdapter(adp);}
    

    创建布局simple\u spinner\u项

    <?xml version="1.0" encoding="utf-8"?>
    
        <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
            android:id="@android:id/text1"
            style="?android:attr/spinnerItemStyle"
            android:singleLine="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ellipsize="marquee"
            android:textAlignment="inherit"/>
    

    创建布局微调器\u get\u视图

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <TextView
            android:id="@+id/countrycodeTV"
            style="?android:attr/spinnerItemStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ellipsize="marquee"
            android:maxLines="1"
            android:textAlignment="inherit"
            android:textSize="@dimen/text_size_button_xs" />
    
        <TextView
            android:id="@+id/countrynameTV"
            style="?android:attr/spinnerItemStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_toEndOf="@+id/countrycodeTV"
            android:ellipsize="marquee"
            android:maxLines="1"
            android:textAlignment="inherit"
            android:textSize="@dimen/text_size_button_xs" />
    
    
    </RelativeLayout>
    
        3
  •  0
  •   Fazal Hussain    6 年前

    使用TelephonyManager创建国家/地区代码。

    TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
    String countryCodeValue = tm.getNetworkCountryIso();
    
        4
  •  0
  •   Nilesh Kumar    3 年前

    该库是“hbb20国家/地区代码选择器”。你可以在这里找到 Github链接: https://github.com/hbb20/CountryCodePickerProject