2011-10-19 259 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創建一個適配器。一旦你有一個適配器,那麼你可以很容易地將其設置在微調器內。