Android Spinner - PullRequest
       13

Android Spinner

2 голосов
/ 14 декабря 2010

Здравствуйте, у меня есть вопрос об Android Spinner

У меня есть Spinner, который заполняется массивом. Массив - это Имя страны и Телефонный код страны в каждой строке

Часть массива

<item>355  Albania</item>
<item>213  Algeria</item>
<item>376  Andorra</item>
<item>244  Angola</item>
<item>1264  Anguilla</item>
<item>1268  Antigua and Barbuda</item>
<item>54  Argentina</item>

Это мой java-код для заполнения счетчика

final Spinner spnCountry = (Spinner) findViewById(R.id.countries);
ArrayAdapter<CharSequence> adpCountry = ArrayAdapter.createFromResource(
        this, R.array.countries, android.R.layout.simple_spinner_item);
adpCountry
    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spnCountry.setAdapter(adpCountry);

Я хочу показывать только код страны на поле и при открытии счетчика показывать название и код страны в каждой строке.

Может ли кто-нибудь помочь мне, как это сделать?

Спасибо

1 Ответ

2 голосов
/ 14 декабря 2010

Загрузка прядильщика;

String[] countries = getResources().getStringArray(R.array.countries);

ArrayAdapter<String> adpCountry = new ArrayAdapter<String>();
for(String country : countries)
{
    String parts = country.split(" ");
    String code = parts[0];

    adpCountry.addItem(code);
}

adpCountry.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spnCountry.setAdapter(adpCountry);

Выбор предмета;

spnCountry.setOnItemSelectedListener(new OnItemSelectedListener()
{
    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int index, long arg3)
    {
        String country = "";
        String[] countries = getResources().getStringArray(R.array.countries);

        String selected = countries[index];
        String[] parts = selected.split(" ");
        for(String part : parts)
        {
            country += part;
        }

        TextView txtName = findViewById(R.id.country_name);
        txtName.setText(country);
    }

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

(из сердца)

...