2010-12-14 23 views
2

Hallo, ich habe Fragen zu android SpinnerAndroid Spinner

Ich habe Spinner, die von Array Array bevölkert ist Ländername und Land Telefon-Code auf jeder Zeile

Teil des Arrays

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

das ist mein Java-Code für den Spinner

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

I o zeigen wollen, bevölkern nly Ländercode auf der Box und wenn der Spinner geöffnet ist, um den Ländernamen und den Code in jeder Zeile anzuzeigen.

Kann mir jemand helfen, wie das geht?

Vielen Dank

Antwort

2

Laden des Spinner;

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

Auswählen eines Elements;

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

(aus Herz)

+0

Hallo ich Ihr Code versucht haben, aber es ist ein Fehler 12-16 15: 40: 27,961: ERROR/Android Runtime (245): Verursacht durch: java.lang .UnsupportedOperationException 12-16 15: 40: 27.961: FEHLER/AndroidRuntime (245): um java.util.AbstractList.add (AbstractList.java:411) 12-16 15: 40: 27.961: FEHLER/AndroidRuntime (245) : at java.util.AbstractList.add (AbstractList.java:432) 12-16 15: 40: 27.961: FEHLER/AndroidRuntime (245): bei android.widget.ArrayAdapter.add (ArrayAdapter.java:178) Methode addItem (String) i s undefined für den Typ ArrayAdapter versucht mit addItem und füge hinzu –

+0

Auch was ich tun möchte, ist: Wenn Spinner angezeigt wird, möchte ich nur Ländercode sichtbar sein und wenn ich auf den Spinner klicken und die Liste geöffnet ist, will ich das Land sehen Code und Ländername –

+0

Können Sie versuchen, einfügen (code, adpCountry.getCount())? – Thys