【发布时间】:2016-05-24 23:51:18
【问题描述】:
我正在创建一个 android 应用程序,我想在其中添加微调器(即国家/地区)中的值。我成功添加了它们,但我想在微调器列表的顶部显示我想要的国家,即我想在微调器的 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);
【问题讨论】:
-
setSelection 向微调器显示给定的索引值,但如果您想根据您的要求显示微调器列表项,那么您在提供给微调器之前已经安排了列表。
-
为什么不开始使用
Australia将名称添加到您的数组中? -
@hareshsetselection 显示澳大利亚已被选中,但我想在微调器列表的索引 0 处显示澳大利亚
-
您可以使用 countryname.add(1,"Australia") 在您的数组列表中将其设置为第一个位置,从而将澳大利亚设置为第一个位置;另请注意,添加方法不会覆盖之前指定的元素列表中的索引。它将元素移动到右侧并将列表大小增加 1。
标签: android android-layout drop-down-menu android-spinner