Android动态填充下拉列表

时间:2011-10-19 08:04:10

标签: android drop-down-menu

我想动态填充下拉列表。我会向服务器发出请求,从那里获取我的数据并根据我的数据(例如我会采取一些ID)我想使列表更大/更小。我在developer.android上找到的示例是静态的,因为列表中的名称是在strings.xml中写的

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

2 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:0)

我建议你创建一个响应所有对象/字符串的 ArrayList ,并创建一个具有相同ArrayList的适配器。一旦有了适配器,就可以轻松地在Spinner中进行设置。