2010-12-14 6 views
2

Bonjour j'ai android question sur spinnerAndroid Spinner

Je spinner qui est peuplé par réseau.Procédé tableau est le nom du pays et le code de tél pays sur chaque ligne

partie du tableau

<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> 

Ceci est mon code java pour peuplant la fileuse

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); 

Je veux montrer o Nly code de pays sur la boîte et lorsque le spinner est ouvert pour afficher le nom du pays et le code sur chaque ligne.

Quelqu'un peut-il m'aider à faire cela?

Merci

Répondre

2

Chargement du fileur;

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); 

Sélection d'un élément;

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 */ } 
}); 

(hors coeur)

+0

Bonjour j'ai essayé votre code, mais il y a une erreur 12-16 15: 40: 27,961: ERREUR/AndroidRuntime (245): causée par: java.lang .UnsupportedOperationException 12-16 15: 40: 27,961: ERROR/AndroidRuntime (245): à java.util.AbstractList.add (AbstractList.java:411) 12-16 15: 40: 27,961: ERROR/AndroidRuntime (245) : à java.util.AbstractList.add (AbstractList.java:432) 12-16 15: 40: 27,961: ERROR/AndroidRuntime (245): à android.widget.ArrayAdapter.add (ArrayAdapter.java:178) méthode addItem (String) i s indéfini pour le type ArrayAdapter essayé avec addItem et ajouter –

+0

Aussi ce que je veux faire est: lorsque spinner est montré je veux être visible seulement le code du pays et quand je clique sur le spinner et la liste est ouverte, je veux voir le pays code et nom du pays –

+0

Pouvez-vous essayer insert (code, adpCountry.getCount())? – Thys

Questions connexes