Spinner 中已排序字符串数组的示例

Example for sorted String-array in Spinner

您好,我想在微调器中显示按字母顺序排列的数组名称="planets_array"。 我找到了一些关于 .sort 集合和数组列表的信息,但没有让我了解它是如何工作的。 所以请帮助我并举例说明。 我在 strings.xml:

<string-array name="planets_array">
    <item>Dein Ziel</item>
    <item>Mercury</item>
    <item>Venus</item>
    <item>Earth</item>
    <item>Mars</item>
    <item>Jupiter</item>
    <item>Saturn</item>
    <item>Uranus</item>
    <item>Neptune</item>
</string-array>

在Activity.java中:

Spinner spinner = (Spinner) findViewById(R.id.spinner1);
 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

你可以直接在你的xml中使用......

<Spinner
           android:layout_width="150dp"
           android:layout_height="wrap_content"
           android:id="@+id/namespinner"
           android:entries="@array/planets_array"
           android:spinnerMode="dropdown"/>

在XML中使用这一行android:entries="@array/planets_array"......

更改此行.........

    String [] myArray=getResources().getStringArray(R.array.name);
    Arrays.sort(myArray);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,myArray);

享受编码......

您需要手动对数组进行排序

Spinner spinner = (Spinner) findViewById(R.id.spinner1);
String[] planets_array = getResources().getStringArray(R.array.planets_array);
Arrays.sort(planets_array);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, planets_array);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
    String arr[] = getResources().getStringArray(R.array.planets_array);     
    Comparator<String> stringComparator = new Comparator<String>() {
                    @Override
                    public int compare(String lhs, String rhs) {
                        return lhs.compareTo(rhs);
                    }
                };
  Arrays.sort(arr,stringComparator);

所以现在你得到了排序数组,所以你可以在 ArrayAdapter

中使用它
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,   android.R.layout.simple_spinner_item, arr);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);

1.对行星数组进行排序。

String[] planetsArray = getResources().getStringArray(R.array.planets_array);
List<String> planetsList = Arrays.asList(planetsArray);
Collections.sort(planetsList); //planetsArray will be sorted

2。将排序的数组列表传递给适配器。

Spinner spinner = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, planetsList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);