2010-12-14 80 views
2

您好,我有关于Android微调问题Android的微调

我有一个由array.The数组填充微调是国名和国家电话区号上的每一行的阵列的

部分

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

这是用于填充微调

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

我想告诉O我的Java代码只有国家代码在框中,并且打开微调框以显示每行的国家名称和代码。

有人可以帮助我如何做到这一点?

谢谢

回答

2

加载微调器;

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

(出心脏的)

+0

你好,我已经试过你的代码,但有一个错误12-16 15:40:27.961:ERROR/AndroidRuntime(245):java.lang中:致.UnsupportedOperationException 12-16 15:40:27.961:ERROR/AndroidRuntime(245):at java.util.AbstractList.add(AbstractList.java:411) 12-16 15:40:27.961:ERROR/AndroidRuntime(245) :At java.util.AbstractList.add(AbstractList.java:432) 12-16 15:40:27.961:ERROR/AndroidRuntime(245):at android.widget.ArrayAdapter.add(ArrayAdapter.java:178) The方法addItem(String)i s未定义类型ArrayAdapter 尝试addItem并添加 – 2010-12-16 13:42:24

+0

另外我想要做的是:当微调显示我想只可见国家代码,当我点击微调和列表打开我想看到国家代码和国家名称 – 2010-12-16 13:58:49

+0

你可以尝试插入(code,adpCountry.getCount())? – Thys 2010-12-16 20:28:14