Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何设置微调器项目位置_Android_Android Layout_Drop Down Menu_Android Spinner - Fatal编程技术网

Android 如何设置微调器项目位置

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.

我正在创建一个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);
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