Android 如何设置微调器项目位置
我正在创建一个android应用程序,我想在其中添加spinner国家的价值。我成功地添加了它们,但我想在微调器列表的顶部显示我的愿望国家,即我想在微调器的0索引处显示澳大利亚。那么我如何才能做到这一点呢?任何人都可以帮助我 这是我的密码:Android 如何设置微调器项目位置,android,android-layout,drop-down-menu,android-spinner,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.
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);
String[]str=新字符串[countryname.size()-1];
str=countryname.toArray(str);
int indexTarget=13;
字符串值index=str[indexTarget];
对于(int i=indexTarget;i>0;i--){
str[i]=str[i-1];
}
str[0]=valueAtIndex;
对于(int i=0;i
如果您希望澳大利亚在spinner排名第一,请将其添加到您的国家名称的第0个索引中
您可以使用Australia
开始向您的countryname
添加名称,这样它将位于第0个索引,并显示在微调器的第一个位置
spinner.setSelection(12)
将从提供给适配器的数组中选择第13个值。它不会在第一个位置
编辑
这只是一个示例,您需要进行相应的修改。这里的原始数组是B,M,T,A,C
,我希望A
是第一个数组,所以我需要索引A
。对于您的问题,您需要澳大利亚
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]);
String[]str={“B”、“M”、“T”、“A”、“C”};;
int indexTarget=3;
字符串值index=str[indexTarget];
对于(int i=indexTarget;i>0;i--){
str[i]=str[i-1];
}
str[0]=valueAtIndex;
对于(int i=0;i
输出
A
B
M
T
C
现在A
位于第一个位置 setSelection是向spinner显示给定的索引值,但如果您希望根据需要显示spinner列表项,那么您必须在将列表提供给spinner之前对列表进行排列。为什么不开始使用Australia
?@hareshsetselection将澳大利亚显示为选中状态,但我想在的索引0处显示澳大利亚微调器列表您可以通过使用countryname在arraylist的第一位置设置澳大利亚,从而将其设置为第一位置。添加(1,“australia”);还要注意,add方法不会覆盖列表中指定索引处的元素。它将元素向右移动,并将列表大小增加1。这解决了我的问题,但我如何才能将str[i]分配给微调器?不要分配str[i],只需将str
传递给适配器即可。您应该在将字符串数组
传递到适配器
之前编写此代码。然后剩下的代码保持不变;MySpinnerAdapter=新的MySpinnerAdapter(SignUp.this,android.R.layout.simple\u spinner\u项,stringList);它的ArrayIndexOutofBound的给定错误是什么countryname
?countyname是Arraylist