Android获得阵列微调器上的所有国家/地区

时间:2013-09-03 13:47:12

标签: android android-spinner

我搜索了很多,但我找到的东西有点困惑。

我需要获取android国家/地区列表并将默认设置为用户区域设置。

例如: 我正在注册一个用户帐户,我需要插入该国家/地区,该微调器将显示所有国家/地区,但默认情况下会显示为我的默认语言区域。

现在我有:

private Spinner spCountry;
private String array_spinner[];

...

spCountry = (Spinner) findViewById(R.id.spCountry);

array_spinner = new String[1];
array_spinner[0] = "Portugal";

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, array_spinner);
spCountry.setAdapter(adapter);

谢谢大家的帮助!

4 个答案:

答案 0 :(得分:31)

至于我,我迭代可用的Locales并将每个项添加到arrayList中。当然,我必须忽略重复和空字符串。这是我的代码:

Locale[] locale = Locale.getAvailableLocales();
ArrayList<String> countries = new ArrayList<String>();
String country;
for( Locale loc : locale ){
    country = loc.getDisplayCountry();
    if( country.length() > 0 && !countries.contains(country) ){
        countries.add( country );
    }
}
Collections.sort(countries, String.CASE_INSENSITIVE_ORDER);

Spinner citizenship = (Spinner)findViewById(R.id.input_citizenship);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, countries);
citizenship.setAdapter(adapter);

答案 1 :(得分:7)

您可以使用

private static final String DEFAULT_LOCAL = "Portugal";

然后用它来设置默认选择如下。

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, array_spinner);
spCountry.setAdapter(adapter);
spCountry.setSelection(adapter.getPosition(DEFAULT_LOCAL));

<强>输出:

enter image description here

<强>更新arrays.xml

中创建res/values
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="country_arrays">
        <item>Malaysia</item>
        <item>United States</item>
        <item>Indonesia</item>
        <item>France</item>
        <item>Italy</item>
        <item>Singapore</item>
        <item>New Zealand</item>
        <item>India</item>
        <item>Portugal</item>
    </string-array>

</resources>

然后在activity中使用以下内容获取所有国家/地区。

array_spinner = getResources().getStringArray(R.array.country_arrays);

答案 2 :(得分:0)

根据您的需求提供有用且可自定义的国家/地区选择器。

摇篮

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
return new ResponseEntity<>(responseJson.toString(), headers, HttpStatus.BAD_REQUEST);

样本用法:

repositories {
    maven { url "https://jitpack.io" }
}

compile 'com.github.ekimual:country-picker-x:1.0.0'

参考https://android-arsenal.com/details/1/4390

答案 3 :(得分:0)

为什么不这样做呢?只需将国家/地区列入清单,对其进行排序并插入即可。

sales_invoice