如何根据android中的country项设置文本?

时间:2017-02-15 13:28:59

标签: android android-spinner

我从spinner获取国家名称,现在我想根据edittext中的微调项设置国家代码...但我不知道如何根据微调项设置...

这是代码(这里我从spinner获取国家名称):

 pmmobile = (EditText) findViewById(R.id.mob);
private void  getCountryData(){
        StringRequest stringRequest = new StringRequest(DATA_URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        JSONObject j = null;
                        try {
                            Log.d("Test",response);
                            JSONArray result = new JSONArray(response);
                            //Calling method getCountry to get the Country from the JSON Array
                            getCountry(result);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
            }});
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        //Adding request to the queue
        requestQueue.add(stringRequest);
    }
    private void   getCountry(JSONArray  jsonArrayCountry){
        //Traversing through all the items in the json array
        List<Country> countries = new ArrayList<>();
        try {
            String country_name, country_code;
            JSONObject countries_object;
            for (int i = 0; i < jsonArrayCountry.length(); i++) {
                countries_object = jsonArrayCountry.getJSONObject(i);
                country_code = countries_object.getString("id");
                country_name = countries_object.getString("Name");
                countries.add(new Country(country_code, country_name));
            }
            ArrayAdapter countryAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, countries);
            pmcountry.setPrompt("Select Country");
            pmcountry.setAdapter(countryAdapter);
            pmcountry.setAdapter(new NothingSelectedSpinnerAdapter(countryAdapter,
                    R.layout.contact_spinner_row_nothing_selected,this));
            pmcountry.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                }
                @Override
                public void onNothingSelected(AdapterView<?> arg0) {
                }
            });

        } catch (JSONException e) {
            Log.e("PMSearchActivity", e.getLocalizedMessage(), e);
        }
    }

我想在pmmobile中设置国家/地区代码...帮助,新到Android。

这是我的json:

[
  {
    "id": "1",
    "Name": "Afghanistan",
    "CountryCode": "AF",
    "CountryIso": "AFG"
  },
  {
    "id": "2",
    "Name": "Albania",
    "CountryCode": "AL",
    "CountryIso": "ALB"
  },

1 个答案:

答案 0 :(得分:1)

我想如果您想要显示String,那么您将使用TextView,而不是EditText

反正:

pmmobile.setText(<... string or string res ID ...>);

这很简单。

为了使它保持异步,我想你应该将它放在一个监听器中,例如onItemSelected()

更新。 由于不知道你想要做什么,我建议你去浏览Locale实用程序类中的常量。您可以从那里获得所有语言ISO代码以及您需要的便利常量和实用程序,而不会对json和类似的东西感到疯狂。

Locale.COUNTRY.getLanguage();

Locale.getISOLanguages();

虽然我不知道这是否是你需要的。