如何设置微调项目位置

时间:2014-08-08 05:56:33

标签: android android-layout drop-down-menu android-spinner

我正在创建一个Android应用程序,我想在spinner中添加值,即国家/地区。我成功地添加了它们,但我想在旋转器列表的顶部显示我的欲望国家,即我想在旋转器的0索引处显示澳大利亚。那我怎么能做到这一点?有人请帮助我。

这是我的代码:

    MySpinnerAdapter adapter = new MySpinnerAdapter(SignUp.this, android.R.layout.simple_spinner_item, countryname);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner_country.setAdapter(adapter);
    spinner_country.setSelection(countryname.size() - 1);
    spinner_country.setSelection(12);

    Collections.sort(countryname);

现在我正在执行此操作并显示ArrayIndexOutOfBoundsException

    String[] str = new String[countryname.size()-1];
    str = countryname.toArray(str);

    int indexTarget = 13;
    String valueAtIndex = str[indexTarget];
    for(int i = indexTarget; i > 0; i--){
        str[i] = str[i-1];
    }
    str[0] = valueAtIndex;

    for (int i = 0; i < str.length; i++)
    {
        System.out.println(str[i]);
    }
    List<String> stringList = new ArrayList<String>(Arrays.asList(str));
    MySpinnerAdapter adapter = new MySpinnerAdapter(SignUp.this, android.R.layout.simple_spinner_item, stringList);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner_country.setAdapter(adapter);
    spinner_country.setSelection(countryname.size() - 1);
    Collections.sort(countryname);

1 个答案:

答案 0 :(得分:0)

如果您希望澳大利亚位于微调器中的第一个位置,请将其添加到countryname的第零个索引。

您可以开始使用countrynameAustralia添加名称,使其成为第零个索引并显示在微调器中的第一个位置。

spinner.setSelection(12)将从您提供给适配器的阵列中选择第13个值。它不会在第一个位置。

编辑

这只是一个例子,你需要相应地修改。原始数组是B, M, T, A, C,我希望A是第一个,所以我需要index of A。对于您的问题,您需要索引Australia

    String[] str = {"B", "M", "T", "A", "C"};;
    int indexTarget = 3;
    String valueAtIndex = str[indexTarget];
    for(int i = indexTarget; i > 0; i--){
       str[i] = str[i-1];
    }
    str[0] = valueAtIndex;

    for (int i = 0; i < str.length; i++)
        System.out.println(str[i]);

<强>输出

一个 乙 中号 Ť ç

现在A位于第一位。