我正在创建一个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);
答案 0 :(得分:0)
如果您希望澳大利亚位于微调器中的第一个位置,请将其添加到countryname
的第零个索引。
您可以开始使用countryname
向Australia
添加名称,使其成为第零个索引并显示在微调器中的第一个位置。
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
位于第一位。