2011-10-19 74 views
2

我想动态填充下拉列表。我会向服务器发送请求,从那里获取我的数据,并根据我的数据(例如,我将采取一些ID),我希望将该列表变大/变小。我在developer.android发现的例子是静态的,因为在列表中的名字写在strings.xml中Android动态填充下拉列表

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="planet_prompt">Choose a planet</string> 
    <string-array name="planets_array"> 
     <item>Mercury</item> 
     <item>Venus</item> 
     <item>Earth</item> 
     <item>Mars</item> 
     <item>Jupiter</item> 
     <item>Saturn</item> 
     <item>Uranus</item> 
     <item>Neptune</item> 
    </string-array> 
</resources> 

的完整代码here

回答

9
ArrayList<String> options=new ArrayList<String>(); 

options.add("option 1"); 
options.add("option 2"); 
options.add("option 3"); 

// use default spinner item to show options in spinner 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,options); 
mSpinner.setAdapter(adapter); 

您还可以设置特定项目使用进行选择:

mSpinner.setSelection(options.indexOf("option 2")); 

编辑:

您还可以使用自定义XML文件显示微调的项目,喜欢 -

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.custom_spinner_item,options); 
+0

+1哇...我的回答很实用。 –

+0

什么是R.layout.spinner_item?我应该把'R.layout.main'代替吗?我已经把它和程序崩溃..你能告诉我为什么吗? – Teo

+0

是的...这是自定义布局xml文件。你可以使用默认的一个也可以。请参阅我的编辑。 – Hiral

0

我建议您创建一个ArrayList所有对象/字符串,您将获得作为响应并使用相同的ArrayList创建一个适配器。一旦你有一个适配器,那么你可以很容易地将其设置在微调器内。