Android Countries list with flags and availability of getting iso mobile codes

后端 未结 1 1853
轻奢々
轻奢々 2020-12-13 11:23

Needed Example of project showing all countries with flags and availability for getting countries mobile codes.

相关标签:
1条回答
  • 2020-12-13 11:49

    We need files with codes described below.

    class MainActivity

    package com.example.countrieswithflags;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.widget.ListView;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            String[] recourseList=this.getResources().getStringArray(R.array.CountryCodes);
    
            final ListView listview = (ListView) findViewById(R.id.listView);
            listview.setAdapter(new CountriesListAdapter(this, recourseList));
    
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
    }
    

    We need an adapter for list

    CountriesListAdapter

    package com.example.countrieswithflags;
    
    import java.util.Locale;
    
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    public class CountriesListAdapter extends ArrayAdapter<String> {
        private final Context context;
        private final String[] values;
    
        public CountriesListAdapter(Context context, String[] values) {
            super(context, R.layout.country_list_item, values);
            this.context = context;
            this.values = values;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    
            View rowView = inflater.inflate(R.layout.country_list_item, parent, false);
            TextView textView = (TextView) rowView.findViewById(R.id.txtViewCountryName);
            ImageView imageView = (ImageView) rowView.findViewById(R.id.imgViewFlag);
    
            String[] g=values[position].split(",");
            textView.setText(GetCountryZipCode(g[1]).trim());
    
    
            String pngName = g[1].trim().toLowerCase();
            imageView.setImageResource(context.getResources().getIdentifier("drawable/" + pngName, null, context.getPackageName()));
            return rowView;
        }
    
        private String GetCountryZipCode(String ssid){
            Locale loc = new Locale("", ssid);
    
            return loc.getDisplayCountry().trim();
        }
    }
    

    Our strings.xml will have these lines

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <string name="app_name">Countries With Flags</string>
        <string name="action_settings">Settings</string>
        <string name="hello_world">Hello world!</string>
    
        <string-array name="CountryCodes" >
            <item>93,AF</item>
            <item>355,AL</item>
            <item>213,DZ</item>
            <item>376,AD</item>
            <item>244,AO</item>
            <item>54,AR</item>
            <item>374,AM</item>
            <item>297,AW</item>
            <item>61,AU</item>
            <item>43,AT</item>
            <item>994,AZ</item>
            <item>973,BH</item>
            <item>880,BD</item>
            <item>375,BY</item>
            <item>32,BE</item>
            <item>501,BZ</item>
            <item>229,BJ</item>
            <item>975,BT</item>
            <item>591,BO</item>
            <item>387,BA</item>
            <item>267,BW</item>
            <item>55,BR</item>
            <item>673,BN</item>
            <item>359,BG</item>
            <item>226,BF</item>
            <item>95,MM</item>
            <item>257,BI</item>
            <item>855,KH</item>
            <item>237,CM</item>
            <item>1,CA</item>
            <item>238,CV</item>
            <item>236,CF</item>
            <item>235,TD</item>
            <item>56,CL</item>
            <item>86,CN</item>
            <item>61,CX</item>
            <item>61,CC</item>
            <item>57,CO</item>
            <item>269,KM</item>
            <item>242,CG</item>
            <item>243,CD</item>
            <item>682,CK</item>
            <item>506,CR</item>
            <item>385,HR</item>
            <item>53,CU</item>
            <item>357,CY</item>
            <item>420,CZ</item>
            <item>45,DK</item>
            <item>253,DJ</item>
            <item>670,TL</item>
            <item>593,EC</item>
            <item>20,EG</item>
            <item>503,SV</item>
            <item>240,GQ</item>
            <item>291,ER</item>
            <item>372,EE</item>
            <item>251,ET</item>
            <item>500,FK</item>
            <item>298,FO</item>
            <item>679,FJ</item>
            <item>358,FI</item>
            <item>33,FR</item>
            <item>689,PF</item>
            <item>241,GA</item>
            <item>220,GM</item>
            <item>995,GE</item>
            <item>49,DE</item>
            <item>233,GH</item>
            <item>350,GI</item>
            <item>30,GR</item>
            <item>299,GL</item>
            <item>502,GT</item>
            <item>224,GN</item>
            <item>245,GW</item>
            <item>592,GY</item>
            <item>509,HT</item>
            <item>504,HN</item>
            <item>852,HK</item>
            <item>36,HU</item>
            <item>91,IN</item>
            <item>62,ID</item>
            <item>98,IR</item>
            <item>964,IQ</item>
            <item>353,IE</item>
            <item>44,IM</item>
            <item>972,IL</item>
            <item>39,IT</item>
            <item>225,CI</item>
            <item>81,JP</item>
            <item>962,JO</item>
            <item>7,KZ</item>
            <item>254,KE</item>
            <item>686,KI</item>
            <item>965,KW</item>
            <item>996,KG</item>
            <item>856,LA</item>
            <item>371,LV</item>
            <item>961,LB</item>
            <item>266,LS</item>
            <item>231,LR</item>
            <item>218,LY</item>
            <item>423,LI</item>
            <item>370,LT</item>
            <item>352,LU</item>
            <item>853,MO</item>
            <item>389,MK</item>
            <item>261,MG</item>
            <item>265,MW</item>
            <item>60,MY</item>
            <item>960,MV</item>
            <item>223,ML</item>
            <item>356,MT</item>
            <item>692,MH</item>
            <item>222,MR</item>
            <item>230,MU</item>
            <item>262,YT</item>
            <item>52,MX</item>
            <item>691,FM</item>
            <item>373,MD</item>
            <item>377,MC</item>
            <item>976,MN</item>
            <item>382,ME</item>
            <item>212,MA</item>
            <item>258,MZ</item>
            <item>264,NA</item>
            <item>674,NR</item>
            <item>977,NP</item>
            <item>31,NL</item>
            <item>599,AN</item>
            <item>687,NC</item>
            <item>64,NZ</item>
            <item>505,NI</item>
            <item>227,NE</item>
            <item>234,NG</item>
            <item>683,NU</item>
            <item>850,KP</item>
            <item>47,NO</item>
            <item>968,OM</item>
            <item>92,PK</item>
            <item>680,PW</item>
            <item>507,PA</item>
            <item>675,PG</item>
            <item>595,PY</item>
            <item>51,PE</item>
            <item>63,PH</item>
            <item>870,PN</item>
            <item>48,PL</item>
            <item>351,PT</item>
            <item>1,PR</item>
            <item>974,QA</item>
            <item>40,RO</item>
            <item>7,RU</item>
            <item>250,RW</item>
            <item>590,BL</item>
            <item>685,WS</item>
            <item>378,SM</item>
            <item>239,ST</item>
            <item>966,SA</item>
            <item>221,SN</item>
            <item>381,RS</item>
            <item>248,SC</item>
            <item>232,SL</item>
            <item>65,SG</item>
            <item>421,SK</item>
            <item>386,SI</item>
            <item>677,SB</item>
            <item>252,SO</item>
            <item>27,ZA</item>
            <item>82,KR</item>
            <item>34,ES</item>
            <item>94,LK</item>
            <item>290,SH</item>
            <item>508,PM</item>
            <item>249,SD</item>
            <item>597,SR</item>
            <item>268,SZ</item>
            <item>46,SE</item>
            <item>41,CH</item>
            <item>963,SY</item>
            <item>886,TW</item>
            <item>992,TJ</item>
            <item>255,TZ</item>
            <item>66,TH</item>
            <item>228,TG</item>
            <item>690,TK</item>
            <item>676,TO</item>
            <item>216,TN</item>
            <item>90,TR</item>
            <item>993,TM</item>
            <item>688,TV</item>
            <item>971,AE</item>
            <item>256,UG</item>
            <item>44,GB</item>
            <item>380,UA</item>
            <item>598,UY</item>
            <item>1,US</item>
            <item>998,UZ</item>
            <item>678,VU</item>
            <item>39,VA</item>
            <item>58,VE</item>
            <item>84,VN</item>
            <item>681,WF</item>
            <item>967,YE</item>
            <item>260,ZM</item>
            <item>263,ZW</item>
        </string-array>
    
    
    </resources>
    

    in the layout we must have country_list_item.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >
    
    
        <ImageView 
            android:id="@+id/imgViewFlag"
            android:layout_height="11px"
            android:layout_width="16px"
            android:layout_margin="5dp" />
    
        <TextView 
            android:id="@+id/txtViewCountryName"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content" />
    
    </LinearLayout>
    

    and activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >
    
    
    
        <ListView 
            android:id="@+id/listView"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_marginTop="15dp" >
    
    
        </ListView>
    
    </RelativeLayout>
    

    Also You can find images of flags with correct names (iso names of countries) from here. Or You can find them in the project(link given above).

    0 讨论(0)
提交回复
热议问题