如何在android下拉列表中添加默认选定值

时间:2016-02-12 16:11:47

标签: android

我有一个从数据库获取其值的下拉列表,然后我想为现有的下拉值添加一个默认值。在这种情况下,默认值将是选定的值。

 StringBuilder strbuilder = new StringBuilder();
    ArrayList<String> arr_list = new ArrayList<String>();
    List<String> m = new ArrayList<String>();

    //This get the data values from database
    m = db.getData();

    int ms = m.size();
    String str = strbuilder.toString();

    String[] str1 = str.split(",");


    try {
        if (ms > 1) {

            //This is my default value
             m.add("Default Value");

            for (int i = 0; i < ms; i++) {

                m.get(0);
            }
        } else {
            m.get(0);

        }
    } catch (Exception e) {
        e.printStackTrace();

    }


    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_dropdown_item, m);
    dropdown.setAdapter(adapter);

上述代码能够将数据库中的值添加到下拉列表中,并添加了Default Value,但它似乎不是所选值。

例如,如果数据库中的值为"Apple, Mango,Pineapple"且默认值为"ALL FRUITS"

预期下降

ALL FRUITS Apple Mango Pineapple

请问如何将默认值设为选定值?提前谢谢。

2 个答案:

答案 0 :(得分:1)

我认为您需要以下代码。

    List<String> categories = new ArrayList<String>();
    categories = db.getData();
    categories.add(0,"your_default_value");
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);     
    spinner.setAdapter(dataAdapter);
    spinner.setSelection(0);

请记住,当您想要为Arraylist的第一个添加任何值时,您只需

 arraylist.add(0,"value");

这会将值添加到arraylist的第一个索引并将所有其他元素向下推。

如果您需要选择任何其他元素而不是第一个

 Spinner spinner = (Spinner) findViewById(R.id.spinner);
    List<String> categories = new ArrayList<String>();
    categories.add("Automobile");
    categories.add("Business Services");
    categories.add("Computers");
    categories.add("Education");
    categories.add("Personal");
    categories.add("Travel");
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(dataAdapter);
    int i=categories.indexOf("Education");
    spinner.setSelection(i);

答案 1 :(得分:0)

如果默认值始终位于0索引处,只需获取对下拉列表/微调器的引用,然后设置:

spinner.setSelection(0);

以下是一个先前已回答的问题,详细说明如何按值设置,如果您更愿意这样做。 https://stackoverflow.com/a/4228121/3299157